foreach(DataRow dr_1 in ds1.Tables[0].Rows)
{
   foreach(DataRow dr_2 in ds2.Tables[0])
   {
      if(Convert.ToInt32(dr_1["item_id"]) == Convert.ToInt32(dr_2["item_id"])
         dr_1.Delete();    }
}大意如此,前提是你的item_id为非空字段且数据类型是整形

解决方案 »

  1.   

    public dataset f1()
    {
       ......
       dataset ds1 = getData1(..);
       dataset ds2 = getData2(..);   for( int i=ds1.Tables[0].Rows.Count-1;i>=0;i-- )
         for( int j=ds2.Tables[0].Rows.Count-1;j>=0;j-- )
          {
             if(int.Parse(ds1.Tables[0].Rows[i]["item_id"].ToString()) == int.Parse(ds2.Tables[0].Rows[j]["item_id"].ToString()))
    {
                ds1.Tables[0].Rows[i].Delete();
                break;//添加的部分}
          }
       ds1.AcceptChanges();
       return ds1;
    }
      

  2.   

    刚刚想了想,我上面写的有问题,不能在foreach()循环语句中,删除记录集,改动一下for( int i=ds1.Tables[0].Rows.Count-1;i>=0;i-- )
    {
       DataRow dr_1 = ds1.Tables[0].Rows[i];
       foreach(DataRow dr_2 in ds2.Tables[0])
       {
          if(Convert.ToInt32(dr_1["item_id"]) == Convert.ToInt32(dr_2["item_id"])
            {
             dr_1.Delete();
             i--;
            }    }
    }大意如此,前提是你的item_id为非空字段且数据类型是整形
      

  3.   

    to  darkm00n(黑月) :漂亮!
    to   redebug(雷老虎) :该方法稍微有点问题!数据不能全部删除,第一条数据肯定删不掉,
    原因仍不明白,因为不知道oracle 和 dataset 中数据的存储方式