比较两个数据集并将值放在新数据集中

时间:2011-01-06 05:19:05

标签: c# asp.net ado.net

我正在使用C#处理ASP.NET, 我需要将两个DataSet中的数据与两个DataSet中的“ID”进行比较,然后将所有匹配的行添加到New数据集中。

2 个答案:

答案 0 :(得分:1)

在每个DataSet中的表之间设置DataRelation,然后使用GetChildRows方法查找您可以添加到新DataSet或任何其他数据结构的匹配项。有关示例,请参阅Introduction to DataRelation Objects

答案 1 :(得分:0)

这可以通过两个数据表的交集来完成

using System.Data;

public static class DataTableExtensions
{
    public static IEnumerable<DataRow> Intersect(this DataTable table, DataTable other)
    {
        return table.AsEnumerable().Intersect(other.AsEnumerable());
    }

    public static IEnumerable<DataRow> Intersect(this DataTable table, DataTable other, IEqualityComparer<DataRow> comparer)
    {
        return table.AsEnumerable().Intersect(other.AsEnumerable(), comparer);
    }
}

这是shameless port of an elegant solution :)

假设您有两个要比较的数据集set1和set2。这样做

var newtable = set1.Tables[0].Intersect(set2.Tables[0]).CopyToDataTable();

发布更多细节,如果这不是你想要的。