2

我有一个带有列的 excel 表:

Id,Data

我在 sql server 数据库中有一个表:

Id,Data

我已经派生了两个不同的行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 回答