如何将两个datatable进行比较?

achao201 2007-09-04 06:10:50
如果两个datable表的数据结构都是一样的,现在我想查出这个表有,而另一个表没有的数据记录?本想通过他们的ID主键进行判断,却发现不好获得这个ID?请大家帮忙写出这个方法.
...全文
548 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
chxljtt 2007-09-07
  • 打赏
  • 举报
回复
有表的视图来比较,就不会出现你当心的问题
wys0120 2007-09-07
  • 打赏
  • 举报
回复
好像你这样并不能彻底解决并发问题 :如果在你读取数据(表3)后 比较数据,获取ID主键,进行删除操作 ,最后提交数据库 这段时间有数据修改怎么办?如果数据量大,网速慢,用户多 可以说你这样做是没有用的。

所以建议你解决并发问题还要在数据库级来处理 ,当 delete 或 update 时 where 条件 除主键外 还要根据需要加上 检索时的原始值 = 数据库里的当前值 这一条件 。
bbdsj007 2007-09-07
  • 打赏
  • 举报
回复
int tableSum1 //table1内有多少条记录
int tableSum2 //table2内有多少条记录

for(int i=0;i<tableSum1;i++)
{
for(int j=0;j<tableSum2;j++)
{
if(table1.Rows[i]["ID"] == table2.Rows[j]["ID"])
{
......
}
}
}

上述只适用与拥有少量数据的比较
如果大量的数据比较的话,建议还是在SQL查询
孤剑 2007-09-06
  • 打赏
  • 举报
回复
use DataRelation to do what u want.
yangchao_713 2007-09-06
  • 打赏
  • 举报
回复
我菜鸟,一点想法,不对的话见谅
写两个循环,把每个表id写进两个数组里,比较两个数组。。
xxoo2007 2007-09-06
  • 打赏
  • 举报
回复
两个表互相根据对方的ID进行数据删除, 剩下的就是了
achao201 2007-09-06
  • 打赏
  • 举报
回复
汗,怎么没有一个人能写出此方法啊........
zhewky 2007-09-05
  • 打赏
  • 举报
回复
不知道能否取出记录集,逐行比较了。可能会慢点
Jackforid2003 2007-09-05
  • 打赏
  • 举报
回复
為什麼不能獲取主鍵?
datatable.rows[0]["primarykeyColumnName"]
?
achao201 2007-09-05
  • 打赏
  • 举报
回复
汗,高手都到哪里去了.....
achao201 2007-09-05
  • 打赏
  • 举报
回复
不能用select语句啊,他们不存在于数据库当中!我这样做的目的防止数据的并发处理.先从数据库读取数据,绑定到GRIDVIEW或datagrid控件里,并同时把这些数据给一个datatable(表2),当点击按钮时把datagrid里面修改的数据转化成一个databable(表1),这个时候从数据库里再读取数据(表3),先将 表2 跟 表3 进行比较,如果表2跟表3数据相同,说明没有并发事件,然后将 表1 跟 表2
比较,获取ID主键,进行删除操作.如果表2跟表3数据不同,就不操作,返回一个信息告诉用户,此数据已经被另一个用户修改....,现在是怎么获取ID主键
Wgf2006 2007-09-05
  • 打赏
  • 举报
回复
select * from Table1 where not exists(select * from Table2 where Table2.ID=Table1.ID)
achao201 2007-09-05
  • 打赏
  • 举报
回复
晕啊,怎么没有人回答啊....
qiuming0306 2007-09-05
  • 打赏
  • 举报
回复
可以在向datatable中填充数据的时侯比较!
select *
table1 not in table2
MutStory 2007-09-05
  • 打赏
  • 举报
回复
关注
achao201 2007-09-04
  • 打赏
  • 举报
回复
请大家帮忙啊,把每个不同的ID都要获取....,不是用select语句

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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