【问题标题】:How to Check DataSet Tables that contain the same ID?如何检查包含相同 ID 的 DataSet 表?
【发布时间】:2015-08-09 13:14:51
【问题描述】:

我的问题是我有一个包含四个表的数据集,现在我想检查第二个表的 id(比如假设表中有一个列 empID)在第一个表中可用 与否,如果 id 可用,那么我想删除该 id(完整行),类似地,第三个表 id 将检查第一个表,然后是第二个表 并且第三个表在这些表中的任何一个上都可用,然后该 id 将从该表中删除。剩下的桌子将重复相同的过程。

对于经验:

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 将从数据集的 tableTwo 中删除。并且相同的过程适用于所有表。 听说我正在使用 c#。谢谢

【问题讨论】:

  • 表[0].Rows[foundrow].Delete()

标签: c#


【解决方案1】:

试试这个

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

【讨论】:

    【解决方案2】:

    我建议使用字典或某种键值对,但如果您必须以这种方式处理表格,那么这样的方法会起作用,但效率不高:

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

    【讨论】:

    • 很有帮助,还是您需要的?都准备好了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    相关资源
    最近更新 更多