使用VB.NET比较来自不同数据库的两个数据集

时间:2015-02-18 05:43:47

标签: sql-server vb.net linq dataset

对于数据保证,我的任务是两个比较来自不同数据库的两个数据集。目前我正在进行逐个单元格值比较,这是一种暴力方法,并且耗费了大量时间。

我想知道是否有任何方法可以节省我的时间和内存空间,这可以提供结果指示" 表是相同的 "或" 表格不相同 "。

感谢您的协助。

2 个答案:

答案 0 :(得分:1)

如果它们来自不同的来源,除了逐个细胞AFAIK比较它们之外别无他法。但是我可以建议你一些可能会提高比较速度的东西。如果您的DataTables具有相同的结构,他们希望它们应该逐个比较它们,那么请尝试比较每对行的ItemArray,而不是通过列索引或列名称(或行属性,如果您'使用强类型的DataSet)。这有望为您带来更好的结果。

如果您使用的是.NET 3.5或更高版本,则此行应该执行此操作:

Enumerable.SequenceEqual(row1.ItemArray, row2.ItemArray);

答案 1 :(得分:1)

如何为每个表创建校验和并比较它们?

类似的东西:

SELECT CHECKSUM_AGG(CHECKSUM(*)) FROM TableX

这可能需要ORDER BY更精确。