2

列のあるExcelシートがあります:

Id,Data

SQL Server データベースにテーブルがあります。

Id,Data

私は 2 つの異なる で両方の行を派生さDataTablesせました。今、Excel とデータベース テーブルの両方で共通の行を検出し、重複を別の に保存したいと考えていますDataTable。このようなもの:

OleDbCommand command1 = new OleDbCommand("select * from [Sheet1$]",connection);
DataTable dt2 = new DataTable();
try
{
    OleDbDataAdapter da2 = new OleDbDataAdapter(command1);
    da2.Fill(dt2);
}
catch { }
4

2 に答える 2

1

このようなlinqの方法を試してみてください

var matched = from table1 in dt1.AsEnumerable()
               join table2 in dt2.AsEnumerable() on 
             table1.Field<int>("ID") equals table2.Field<int>("ID")
             where table1.Field<string>("Data") == table2.Field<string>("Data")
             select table1;
于 2012-10-25T06:28:02.263 に答える
0

重複を見つけたい場合は、これを試すことができます

var result = table1.AsEnumerable().Intersect(table2.AsEnumerable()).Select(x => x);

ユニオンから重複を排除したい場合は、これを試すことができます

var result = table1.AsEnumerable().Union(table2.AsEnumerable()).Select(x => x);
于 2012-10-25T06:32:35.437 に答える