如何检查包含相同ID的DataSet表?

时间:2015-05-27 12:37:32

标签: c#

我的问题是我有一个包含四个表的数据集,现在我想在第一个表中检查第二个表中的id(如表中假设有一列empID) 或不,如果id可用,那么我想删除该id(完整行),类似第三个表id将检入第一个表然后第二个表 并且在这些表中的任何一个上都可以使用第三个表,然后将再次从该表中删除该ID。对于剩余的表格,将重复相同的过程。

对于Exp:

BusinessClass.IsProcessedData = DataAccess.getDTHotelInfoIsProcessData();

BusinessClass.IsProcessedData.Tables[0].TableName = "TableOne";
BusinessClass.IsProcessedData.Tables[1].TableName = "TableTwo";
BusinessClass.IsProcessedData.Tables[2].TableName = "TableThree";
BusinessClass.IsProcessedData.Tables[3].TableName = "TableFour";  

现在假设tableTwo表有10行,每行将检查tableTwo行,如果它找到相同的id 在两个表中,然后该id将从tableTwo数据集中删除。并且所有表格都是相同的过程。 听说我正在使用c#。谢谢你

2 个答案:

答案 0 :(得分:0)

试试这个

 foreach(dataset ds in yourmaindataset)
    {
          if(yourmaindataset.contains(ds))
           //TODO:
    }

答案 1 :(得分:0)

我建议使用字典或某种键值配对,但是如果你必须用表格这样做,那么这样的东西会起作用但效率不高:

foreach(DataRow row1 in Tables[0].Rows)
{
   foreach(DataRow row2 in Tables[1].Rows)
   {
      If(row2["empID"] == row1["empID"])
      {
           row2.Delete();
      }
   }
}

以下是所有表格的nvp:

Hashtable hTable = new Hashtable();

foreach(Table table in Tables)
{
   foreach (DataRow row in table.Rows)
   {
      if (hTable.Contains(row["empID"]))
         row.Delete();
      else
         hTable.Add(row["empID"], string.Empty); 
   }
}