![]() |
| 编程社区 » C#编程 » 2个DataTable的对比问题 |
2个DataTable的对比问题 |
sinpoe |
发表:
|
用2个foreach钳套,遍历每一每个表的每个row,找出主键值相同的两行,然后从table1中将其删除
To chailin181() 大大
多谢您的关注,能给你代码吗?
因为,我本来就是这个思路
不过删除掉1条记录之后,程序就出错,最外面的foreach不能继续了
foreach(DataRow orow in OptResult.Rows)
{
foreach(DataRow erow in thisResult.Rows)
{
if(orow[0].ToString()==erow[0].ToString())
{
//删除此行
orow.Delete();
}
}
}
看你的程序,你的想法是对的,不过你这样写应该不可以,在你的程序上加一个标记吧
如果两个表结构一致的话,可以利用DataSet的Merge方法来操作
试了一下,确实有问题,删除一条后,DataTable不会自动更新,所以我把要删除的行数存在先arraylist里了,效率有点慢,不过太困了~~,先实现了再说吧,回头再想好办法
for (int i = 0; i < dt1.Rows.Count; i++)
{
for (int j = 0; j < dt2.Rows.Count; j++)
{
if (dt1.Rows[i][0].ToString() == dt2.Rows[j][0].ToString())
{
rowArray.Add(i);
}
}
}
for(int p=0;p<rowArray.Count;p++)
{
dt1.Rows[(int)rowArray[p]].Delete();
}
up
mark
先试一下,多谢各位大大关注
| 编程社区 2008 浙ICP备09013498号 |
| © TinyBBS.cn |
| 编程好站连接:codeproject sf.net codeplex |