我有一个包含一个数据表的数据集DS,数据表有几个数据行。
我有另一个数据集DS1,其中包含一个数据表,数据表有一个数据行。
我想检查DS是否包含DS1中的行
DataRow具有以下格式:
Id Description
目前我正在做以下事情:
if (!(ds.Tables[0].Rows.Contains(ds1.Tables[0].Rows[0])))
它会抛出一个错误:
.Data.MissingPrimaryKeyException: Table doesn't have a primary key.
还有其他办法吗?
例如
数据集DS包含数据表:
1 ABC
2 DEF
3 GHI
数据集DS1包含数据表:
1 ABC
我想看看DS1数据表中的Row是否包含在DS中数据表的行中
答案 0 :(得分:0)
实现这一目标的一个简单方法是:
DataRow [] foundRows = ds.Tables [0] .Select(“ID =”+ ds1.Tables [0] .Rows [0] [“ID”]。ToString());
请注意,只有ID字段用于查找匹配的行。
答案 1 :(得分:0)
你有没有试过这样的事情:
bool CompareDataSets(DataSet ds1, DataSet ds2)
{
foreach (var dr in ds1.Tables[0].Rows)
{
if (ds2.Tables[0].Rows[0].Equals(dr)) return true;
}
return false;
}
我不确定它会起作用,只是想提供帮助。