2012-07-25 16 views
0

在那裏我有2個數據表從DataTable1獲取行,他們是不是在DataTable2

DataTable1 
SNo 
1 
2 
3 
4 

DataTable2 

SNo 
1 
4 
3 

I want the result 

DataTableResult 

SNo 
2 

我可以用for循環做到這一點。

但我想用linq來做。

var intersection = DataTable1.AsEnumerable().Intersect(DataTable2.AsEnumerable(), DataRowComparer.Default);  

然後我發現Intersect會給你兩個表都有的行。

我不知道使用什麼函數。

任何想法?

我已經得到了答案。

感謝刪除答案的人。

但是,這給了我一個開始。

答案是

var intersection = DataTable1.AsEnumerable().Except(DataTable2.AsEnumerable(), DataRowComparer.Default); 

回答

2

你可以嘗試使用exept聲明它aliitle很難做到準確,因爲你只顯示錶作爲結構,但你可以嘗試這樣的想法

var qry1 = datatable1.AsEnumerable().Select(a => new { SNo.ToString() }); 
var qry2 = datatable2.AsEnumerable().Select(b => new { SNo.ToString() }); 
var exceptAB = qry1.Except(qry2); 
0

您可以使用這樣的查詢

select SNo from DataTable1 where SNo not in (select SNo from DataTable2); 
+0

它是在LINQ或SQL? – william 2012-07-25 02:48:31

+0

這是在SQL ... – Hendra 2012-07-25 02:50:13

相關問題