三层结果如何做复杂的多表联合查询

ruson523 2008-06-24 03:40:25
三层里做复杂的多表联合查询搜索是怎么做的?搜索的话还要有分页的,记录数统计等,能不能提供一个思路或代码。

如果直接返回DataSet到UI层的话好像对层次间的划分显的混乱了。
...全文
466 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
VeryShooter 2011-07-28
  • 打赏
  • 举报
回复
存在这样一个问题,每张数据库表用一个类封装,那么联合查询的结果是否需要再新建一个实体类?
ifwang110 2008-11-10
  • 打赏
  • 举报
回复
返回datatable或是dataset时,是不允许关闭数据库的连接的。如果网络阻塞,则数据库连接是不会被关闭的。占用的资源也不会释放。在业务层封装每条记录到arraylist,可以及时的关闭数据库连接。释放占用的资源。只返回arraylist就可以了。
大自然D使者 2008-06-25
  • 打赏
  • 举报
回复
要多学习,高手总是笑我们,o(∩_∩)o...
ruson523 2008-06-25
  • 打赏
  • 举报
回复
那是不是要写一个通用的存储过程来根据查询拼接sql语句返回列表呢, 谁有没有相关的代码贴个看看.
j147933783 2008-06-25
  • 打赏
  • 举报
回复
没有区别的.你要的目的还是要提取数据.然后在UI显示吗.你就用DATASET保存起来啊.
在对DATASET进行操作不就可以了,3层是一个概念,就你的需要,你分几层都可以啊.
NqIceCoffee 2008-06-25
  • 打赏
  • 举报
回复
一个值得数组到数据层

==》

传一个值的数组到数据层
NqIceCoffee 2008-06-25
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 ruson523 的回复:]
只能用拼接sql语句返回DataSet到UI层去绑定?
[/Quote]

如果你觉得这逻辑层拼接SQL不合适

那就变通一下,一个值得数组到数据层,然后根据值序列在数据层中做拼接的操作
ruson523 2008-06-25
  • 打赏
  • 举报
回复
只能用拼接sql语句返回DataSet到UI层去绑定?
songhuan 2008-06-25
  • 打赏
  • 举报
回复
补充一下:直接返回dataset也并不会破坏架构吧?

处理的方式都是一样的啊.

也是在业务层返回dataset,并不是直接在UI里调用数据层
songhuan 2008-06-25
  • 打赏
  • 举报
回复
有时候是根据需要,并不是说就不能使用DataSet.
弱类型的有时候比强类型的有优势。
比如你在存储过程封装了一个查询,逻辑层根本不知道它是什么类型,这样的情况弱类型就是最好的


需求是第一位的
ruson523 2008-06-25
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 hl_ws 的回复:]
这些没什么啊,主要还是Sql语句的问题
多看看grouping,computing等语法,来实现分组聚合查询
[/Quote]

sql语句我是知道查,但是如何根据不同的搜索条件返回强类型. 到UI页呢. 且搜索可能是关联第多个表,也就是会有多个实体类. 还要分页, 统计查询到的记录数量等.
ruson523 2008-06-25
  • 打赏
  • 举报
回复
返回的是强类型的数据是一个比较好的做法,也是值得提倡的。

支持.
NqIceCoffee 2008-06-25
  • 打赏
  • 举报
回复
貌似理解了一点

不知道对不对

三层结构仅仅是架构上的划分,对返回是强类型还是弱类型的数据是不关心的。

当然了,返回的是强类型的数据是一个比较好的做法,也是值得提倡的。
NqIceCoffee 2008-06-25
  • 打赏
  • 举报
回复
MARK

SP1234别给个引子啊,还是不大明白你说的意思
涛声宜旧 2008-06-25
  • 打赏
  • 举报
回复
这些没什么啊,主要还是Sql语句的问题
多看看grouping,computing等语法,来实现分组聚合查询
ruson523 2008-06-25
  • 打赏
  • 举报
回复
有没有相关的代码贴上来看看呢,存储过程也贴个啊。
myjce 2008-06-25
  • 打赏
  • 举报
回复
好像多表查询无法返回List <Model>吧
因为没有对应的实体类啊
我是直接返回DataTable
Novelty 2008-06-25
  • 打赏
  • 举报
回复
用存储过程。
ruson523 2008-06-25
  • 打赏
  • 举报
回复
查询可能会联系到2-3个表甚至更多, 也就是关联到几个不同的实体对象上。还要求有分页,总记录数等。如果用List<Model>的方式根据需求返回到UI层, 且这个需求是多变的,因为用户随时都可能指定,或不指定这个搜索条件。
datahandler2 2008-06-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ruson523 的回复:]
我看过些别人的三层源码,好像在一些复杂查询的时候都不是返回List <Model>了,直接返回DataSet或DataTable到了UI层。我觉得那样好像那样破坏了三层该有的清晰度。
[/Quote]

返回List跟返回DataTable到UI层进行绑定。你觉得这两个有差别吗?还不都是数据源结果。
加载更多回复(15)

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧