我的问题是我有一个包含四个表的数据集,现在我想在第一个表中检查第二个表中的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#。谢谢你
答案 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);
}
}