3

嗨,我正在尝试datatable通过 Linq 比较两个。但我得到了这个例外:

特定演员表无效

请帮助我,因为我是 Linq 的新手。这是我正在使用的代码:

var matched1 = from table1 in dtAvailableStores.AsEnumerable()
               join table2 in dtControlStores.AsEnumerable() 
               on table1.Field<int>("STORE_NBR") 
               equals table2.Field<int>("STORE_NBR")
               select table1;

STORE_NBR是一个字符串值。

4

2 回答 2

3

使用这段代码,您可以有一个相当不错的主意:

var qry1 = datatable1.AsEnumerable().Select(a => new { MobileNo = a["ID"].ToString() });
var qry2 = datatable2.AsEnumerable().Select(b => new { MobileNo = b["ID"].ToString() });

var exceptAB = qry1.Except(qry2);

DataTable dtMisMatch = (from a in datatable1.AsEnumerable() join ab in exceptAB on a["ID"].ToString() equals ab.MobileNo select a).CopyToDataTable();

参考:

  1. 使用 LINQ 查询比较两个数据表
  2. 比较两个数据表在 C# 中的差异?
于 2012-10-14T15:54:07.500 回答
2

如果该字段实际上不是int.

于 2012-10-14T15:46:39.857 回答