日期:2014-05-18  浏览次数:21110 次

如何将两个datatable进行比较?
如果两个datable表的数据结构都是一样的,现在我想查出这个表有,而另一个表没有的数据记录?本想通过他们的ID主键进行判断,却发现不好获得这个ID?请大家帮忙写出这个方法.

------解决方案--------------------
两个表互相根据对方的ID进行数据删除, 剩下的就是了
------解决方案--------------------
use DataRelation to do what u want.
------解决方案--------------------
好像你这样并不能彻底解决并发问题 :如果在你读取数据(表3)后 比较数据,获取ID主键,进行删除操作 ,最后提交数据库 这段时间有数据修改怎么办?如果数据量大,网速慢,用户多 可以说你这样做是没有用的。

所以建议你解决并发问题还要在数据库级来处理 ,当 delete 或 update 时 where 条件 除主键外 还要根据需要加上 检索时的原始值 = 数据库里的当前值 这一条件 。
------解决方案--------------------
有表的视图来比较,就不会出现你当心的问题
------解决方案--------------------
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查询