0

我有一个数据集 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 包含一个 Datatable :

1  ABC
2  DEF
3  GHI

数据集 DS1 包含一个数据表:

1 ABC

我想看看 DS1 的数据表中的行是否包含在 DS 中的数据表的行中

4

2 回答 2

0

实现此目标的一个简单方法是:

DataRow[] foundRows = ds.Tables[0].Select("ID = " + ds1.Tables[0].Rows[0]["ID"].ToString());

请注意,只有 ID 字段用于查找匹配的行。

于 2013-08-28T16:40:37.087 回答
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;
    }

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

于 2013-08-28T17:02:39.827 回答