【问题标题】:How do I compare two datasets for equality如何比较两个数据集是否相等
【发布时间】:2015-11-18 20:55:52
【问题描述】:

我有两个数据集,每个数据集都有一个从不同来源提取的数据表,我需要知道数据表中包含的数据是否存在任何差异。我试图避免循环和比较每个单独的记录或列,尽管可能没有其他方法。我只需要知道数据是否有差异,我不需要知道任何差异的细节。

我已经尝试了下面的代码,但似乎 dataset.Merge 不会更新行状态,因此 dataset.HasChanges() 总是返回 false。任何帮助表示赞赏:

var currentDataSet = GetSomeData();
var historicalDataSet = GetSomeHistoricalData();

historicalDataSet.Merge(currentDataSet);

if (historicalDataSet.HasChanges()) DoSomeStuff();

【问题讨论】:

    标签: c# .net ado.net


    【解决方案1】:

    我不知道对此有任何内置支持,我也不指望它。所以你必须以某种方式自己做这件事。

    最明显的方法是蛮力,逐表逐行的方法。

    如果您可以依赖某些因素是相同的,即完全相同的命名、记录的顺序等,那么您可以测试将两者保存为 XML 并比较结果是否是一个有效的技巧。

    【讨论】:

    • 是的,那是票。在这种情况下,记录的模式和顺序得到保证,因此可以完美运行。我自己应该想到的!谢谢。
    • 已经 6 年了 - 我确信事情已经发生了变化。现在可以比较数据行(和/或数据表)吗?这似乎是一个相当普遍的问题——我也希望这样做。您可以提供的任何建议都将为未来的用户省去很多麻烦。
    猜你喜欢
    • 2014-09-20
    • 2013-08-18
    • 2021-05-23
    • 1970-01-01
    • 2021-09-14
    • 2023-03-11
    • 2010-12-05
    • 2016-03-06
    相关资源
    最近更新 更多