有2个DataTable
比方:
table1     table2
2           1
3           2
4           9
5           8
6           7要求删除掉table1里面 table2已有内容的行,(这里就是要删除掉table1中的2)
如何实现?

解决方案 »

  1.   

    用2个foreach钳套,遍历每一每个表的每个row,找出主键值相同的两行,然后从table1中将其删除
      

  2.   

    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();
    }
          }
    }
      

  3.   

    如果两个表结构一致的话,可以利用DataSet的Merge方法来操作
      

  4.   

    试了一下,确实有问题,删除一条后,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();
                }