3

datatableこんにちは、Linq で2 つを比較しようとしています。しかし、私はこの例外を受け取ります:

特定のキャストが無効です

私は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 つのデータテーブルを比較する
  2. C# の違いについて 2 つの DataTable を比較しますか?
于 2012-10-14T15:54:07.500 に答える
2

これは、そのフィールドが実際にはint.

于 2012-10-14T15:46:39.857 に答える