比较 C# 中的 2 个数据表

本文关键字:数据表 中的 比较 | 更新日期: 2023-09-27 18:35:17

我有一个包含两个DataTable对象的DataSet对象。两种DataTable具有相同的结构,但第一个较旧,然后第二个。第二个DataTable包含部分旧DataTable对象行和一些新行。我需要知道与旧行相比,哪些行已添加到"较新"DataTable

我想到了采用两个参数(较旧和较新的DataTable)并将包含添加行DataRow[]集合返回到较新的DataTable的方法:

private DataRow[] GetNewDataRows(DataTable oldDT, DataTable newDT)
    {
        // code
    }

我不知道如何实现这一点。谁能帮忙?问候

比较 C# 中的 2 个数据表

希望您正在寻找诸如检查列值之类的东西

var dtData1 = datatable1.AsEnumerable().Select(a => new { ColValue = a["SomeCol"].ToString() });
var dtData2 = datatable2.AsEnumerable().Select(a => new { ColValue = a["SomeCol"].ToString() });
var exceptXY = dtData1.Except(dtData2);
DataTable dtMisMatch = (from a in datatable1.AsEnumerable() 
                       join xy in exceptXY on a["SomeCol"].ToString() equals ab.ColValue select a).CopyToDataTable();

我可能没有正确理解,但认为这对您有帮助。