2014-01-18 54 views
1

我有兩個數據表都具有相同的列和列名稱no.Am需要比較兩個不同的行。這意味着即使一個單元格不匹配行我試圖用比較兩個數據表具有相同的架構和N的列號

table1.Merge(table2); 
DataTable modified = table2.GetChanges(); 

但是這是返回null。

凡爲

IEnumerable<DataRow> added = table1.AsEnumerable().Except(table2.AsEnumerable()); 

這是單獨返回table1的值甚至有一個爲一些細胞在表1相比,表2不同的值。

任何人都可以幫助我進行這種比較。我提到的各種網站,說明說是比較連續的每一列,但因爲我有N列沒有列我不能去那個。我需要一個更聰明的比較方式會很有效率。

在此先感謝

+0

所以你想抓住不在兩個表中的所有行? – dursk

+0

@mattm是的,我需要獲取所有不匹配的行,然後找到哪個或哪些單元格是不匹配的原因 –

回答

2
IEnumerable<DataRow> added = table1.AsEnumerable().Except(table2.AsEnumerable()); 

應改爲

IEnumerable<DataRow> added = table1.AsEnumerable().Except(table2.AsEnumerable(),DataRowComparer.Default); 

因爲數據行不知道如何把自己比作海誓山盟自己。如果需要,您也可以提供自己的平等代理,而不是DataRowComparer.Default。

+0

這正是我想要的。謝謝你,ginkner。 –

相關問題