相关疑难解决方法(0)

比较两个DataTables以确定一个而不是另一个的行

我有两个DataTable,A并且B是从CSV文件生成的.我需要能够检查哪些行B不存在A.

有没有办法进行某种查询来显示不同的行,还是我必须遍历每个DataTable上的每一行来检查它们是否相同?如果表格变大,后一种选择似乎非常密集.

c# datatable

17
推荐指数
3
解决办法
9万
查看次数

获取2个DataSet的差异c#

我正在编写一个简短的算法,它必须比较两个DataSet,以便可以进一步处理两者之间的差异.我尝试通过合并这两个DataSet来完成这个目标,并将结果更改到新的DataSet中.

我的方法如下所示:

    private DataSet ComputateDiff(DataSet newVersion, DataSet oldVersion) 
    {
        DataSet diff = null;
        oldVersion.Merge(newVersion);
        bool foundChanges = oldVersion.HasChanges();
        if (foundChanges) 
        {
            diff = oldVersion.GetChanges();
        }
        return diff;
    }
Run Code Online (Sandbox Code Playgroud)

foundChanges的结果始终为false,即使两个DataSet中的值不同.两个DataSet都具有相同的结构.它们由三个DataTable组成,这三个DataTable是数据库中三个查询的结果.合并工作没有问题.

我的问题是:有没有合理的解释为什么foundChanges变量总是假的,如果没有,Linq会为这个问题提供一个合适的解决方案,或者我必须通过迭代DataSet来确定更改

以下是一些进一步的信息:编程语言是C#我正在使用.Net framework 4.0我在Windows 8机器上开发所提到的数据来自数据库(MSSQL Server 2012 express)我的DataSet或DataTables没有任何PK的我所知道的.

提前致谢

c# diff merge dataset

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×2

dataset ×1

datatable ×1

diff ×1

merge ×1