检查数据表的数据行是否包含在另一个数据表中

时间:2013-08-28 15:54:31

标签: c# asp.net dataset

我有一个包含一个数据表的数据集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中数据表的行中

2 个答案:

答案 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;
    }

我不确定它会起作用,只是想提供帮助。