【发布时间】:2010-10-15 04:54:42
【问题描述】:
我想验证 2 个数据表是否包含相同的数据(用于单元测试),但不幸的是,Assert.AreEqual 不起作用,似乎每个数据表都包含唯一的元数据,这使得它们的引用不相等。
我该怎么做?
【问题讨论】:
标签: c# .net unit-testing datatable
我想验证 2 个数据表是否包含相同的数据(用于单元测试),但不幸的是,Assert.AreEqual 不起作用,似乎每个数据表都包含唯一的元数据,这使得它们的引用不相等。
我该怎么做?
【问题讨论】:
标签: c# .net unit-testing datatable
如果您想知道它们是否不同:
我会按数据表的键对数据表进行排序,然后同时对两者进行迭代。如果相同位置的键不同,那么您就知道表是不同的。如果键相同,则比较该行的表的其他列。
如果您想了解它们之间的差异:
您可能还想看看 DataTable 的 Merge 方法。
【讨论】:
鉴于您正在谈论 SQL 服务器,并且您在同一服务器上有 2 个数据库,您可以为每个表运行一个跨数据库 EXCEPT 以获得差异计数,如下所示:
SELECT COUNT(*)
FROM (
SELECT * FROM database1.dbo.table1
EXCEPT
SELECT * FROM database2.dbo.table1
) AS diff
我相信这是最快的方法,但我又对你的设置做了很多假设:)
【讨论】: