积极答复者
关于数据查询效率的问题

问题
答案
全部回复
-
你好 select * from [另一个表] where [另一个表].[姓名] in (‘姓名1’ ,‘姓名2’,'姓名n')
后边的姓名在程序中通过遍历datatable获得 作为DbCommand参数传入进去查询
如果另一个表数据量不是很大的话 也可以全取出来 然后通过DataTable.Select方法获取
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond- 已标记为答案 Riquel_DongModerator 2009年9月7日 9:02
- 取消答案标记 ahking 2009年9月11日 8:31
-
设已有一个datatable--dt,里面有[姓名]字段,若干条记录;
你好,你的代码中存在一个Datatable,与,数据库中一个表进行比较,建议你,代码中的表在数据库中也获取一份来,然后在数据库中与你所有的那个数据库表比较,这样效率会高些,不然,你的数据已经拿出来了,然后又要回去比较,这个设计本身就效率不高,再怎么优化也是有个限度的。
向数据库中另一个表中查询姓名相同的记录,并将相关记录字段内容填充到dt中,怎么写比较好?总不能循环创建Adapter吧
比较出来结果后,获取你想要的数据,然后最后在返回UI,一句话,UI负责显示数据,不处理数据。
jon.valett@gmail.com- 已标记为答案 Allen Chen - MSFTModerator 2009年9月15日 6:54
- 取消答案标记 Allen Chen - MSFTModerator 2009年9月15日 6:54
-
设已有一个datatable--dt,里面有[姓名]字段,若干条记录;
你好,你的代码中存在一个Datatable,与,数据库中一个表进行比较,建议你,代码中的表在数据库中也获取一份来,然后在数据库中与你所有的那个数据库表比较,这样效率会高些,不然,你的数据已经拿出来了,然后又要回去比较,这个设计本身就效率不高,再怎么优化也是有个限度的。
向数据库中另一个表中查询姓名相同的记录,并将相关记录字段内容填充到dt中,怎么写比较好?总不能循环创建Adapter吧
比较出来结果后,获取你想要的数据,然后最后在返回UI,一句话,UI负责显示数据,不处理数据。
jon.valett@gmail.com
"代码中的表在数据库中也获取一份来",你的意思是把datatable放到数据库中?关键是datatable的数据不是从数据中获取的,是粘贴,然后代码生成的,而且没有往数据库再写的权限啊 -
Hi,
如果数据库你只有读的权限,可以直接写sql查询语句传递进去吧,然后在ADO.net 里使用Dataset来装载数据。
因为你没有写权限,所以不能借助生成表或者创建索引等方式了。
只能使用sql,来进行数据处理,效率应该i可以,比你直接在C#代码里比较数据,然后重新整理赛选符合要求的结果还是方便不少。
我给你个参考语句,你自己,大概的思路:
dt1,
dt2,两个表都包含一个相同的字段name.
select name,* from dt1
inner join dt2 on dt1.name = dt2.name
如果你还有其他的条件,比如日期闲置,你可以再此语句后直接加Where dt1.time >'2009-09-12'
然后使用ADO.NET 的SQLCommand对象直接传递此SQL语句给数据库服务器。
DataSet dataSET ,来装载你查询的数据结果~
参考思路。你看看有帮助没~
Frank Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum -
dt1,
那就不可以了
dt2,两个表都包含一个相同的字段name.
select name,* from dt1
inner join dt2 on dt1.name = dt2.name
dt1是数据库中的一个表,dt2是代码中的dataTable,不是数据库中表,可以这么写么?
你可以参考楼下的建议使用linq尝试一下
Frank Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum