【发布时间】:2013-12-10 08:45:54
【问题描述】:
我有两个数据表,比如 T1 和 T2。以下是两个表中的列:
1) Filename,
2) Size,
3) PATH,
4) rank,
5) DocTitle,
6) HitCount
现在,我需要合并表 T1 和 T2,但条目不应按照“文件名”列重复。
我无法使用 T1.Merge(T2) 来完成我的工作。有没有人有同样的建议。谢谢。
【问题讨论】:
我有两个数据表,比如 T1 和 T2。以下是两个表中的列:
1) Filename,
2) Size,
3) PATH,
4) rank,
5) DocTitle,
6) HitCount
现在,我需要合并表 T1 和 T2,但条目不应按照“文件名”列重复。
我无法使用 T1.Merge(T2) 来完成我的工作。有没有人有同样的建议。谢谢。
【问题讨论】:
如果你需要在 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。
【讨论】:
select * into table_name from (select * from T1 union select * from t2 )
注意
仅当两个表的列数相同时才有效
【讨论】: