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

本文关键字:数据表 另一个 包含 数据 检查 是否 | 更新日期: 2023-09-27 18:29:17

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

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

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

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

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

你试过这样的东西吗:

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

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