簡體   English   中英

如何檢查包含相同ID的數據集表?

[英]How to Check DataSet Tables that contain the same ID?

我的問題是我有一個包含四個表的數據集,現在我想檢查第二個表的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 Rows進行檢查,如果在兩個表中都找到相同的ID,則該ID將從Dataset的tableTwo中刪除。 所有表都使用相同的過程。 聽說我正在使用c#。謝謝

嘗試這個

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

我建議使用Dictionary或某種鍵-值配對,但是如果您必須以這種方式對表進行操作,則可以執行以下操作,但效率不高:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM