将两个数据表合并到一个数据表中,并根据单个列删除重复项

时间:2013-12-10 08:45:54

标签: c# datatable

我有两个数据表,比如T1和T2。以下是两个表中的列:

1) Filename,
2) Size,
3) PATH,
4) rank,
5) DocTitle,
6) HitCount

现在,我需要合并表T1和T2,但条目不应该按照“文件名”列进行复制。

我无法让用户T1.Merge(T2)来完成我的工作。有没有人有同样的建议。感谢。

2 个答案:

答案 0 :(得分:1)

如果您需要在C#中实现此功能,那么可以为您工作

var fileNames = t1.Rows.OfType<DataRow>().Select(row => row["FileName"]).ToList();
var rowsToAdd = t2.Rows.OfType<DataRow>().Where(row => !fileNames.Contains(row["FileName"])).ToList();

foreach (var dataRow in rowsToAdd)
{
    t1.ImportRow(dataRow);
}

但最好使用SQL过滤器,然后放入DataTable。

答案 1 :(得分:0)

select * into table_name from (select * from T1  union select * from t2 )

注意

仅当两个表的列数相同时才会起作用