2012-08-06 74 views
-4

我有2个数据表。c#使用linq的数据表差异

dtTable1:

id Name 
--- ---- 
1  AAA 
2  BBB 

dtTable2:

id 
--- 
2  

输出需要是table1中没有与ID = 2的行。

我该如何使用Linq来做到这一点?

在此先感谢。

回答

-1

你可以从第二个数据表像获得ID列表:

var tempList = (from d in dt2.AsEnumerable() 
      select d.Field<int>("ID")).ToList(); 

稍后,可以使用!Contains检验未在从第一个数据表如:

var result = from t in dt1.AsEnumerable() 
      where !tempList.Contains(t.Field<int>("ID")) 
      select t;