使用Linq比较两个数据表

3

你好,我正在尝试通过Linq比较两个datatable。但是我遇到了这个异常:

无效的特定转换

请帮助我,因为我对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是一个字符串值。

2个回答

3
你可以通过这段代码得到一个相当好的理解:
```html

你需要翻译的内容

```
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#中比较两个数据表的差异?

2
如果该字段实际上不是int类型,就会发生这种情况。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接