Linq to DataTable 合并相同的二个DataTable 且已重复的行不合并
private DataTable dt;
private DataTable dt3;
var query = from a in dt3.AsEnumerable() where dt.AsEnumerable().Where(b => a.Field<int>("serialno") == b.Field<int>("镭射序号") && a.Field<string>("partno") == b.Field<string>("编号")).Count() == 0
select a;
query.ToList().ForEach(c => MessageBox.Show(string.Format("{0}---{1}", c.ItemArray[0], c.ItemArray[1]))); //显示效果
foreach (DataRow dr in query.ToList()) //进行赋值
{
var drw = dt.NewRow();
drw["镭射序号"] = dr.ItemArray[0].ToString();
drw["重量"] = dr.ItemArray[1].ToString();
drw["编号"] = textBox1.Text.ToUpper().Trim();
dt.Rows.Add(drw);
private DataTable dt;
private DataTable dt3;
var query = from a in dt3.AsEnumerable() where dt.AsEnumerable().Where(b => a.Field<int>("serialno") == b.Field<int>("镭射序号") && a.Field<string>("partno") == b.Field<string>("编号")).Count() == 0
select a;
query.ToList().ForEach(c => MessageBox.Show(string.Format("{0}---{1}", c.ItemArray[0], c.ItemArray[1]))); //显示效果
foreach (DataRow dr in query.ToList()) //进行赋值
{
var drw = dt.NewRow();
drw["镭射序号"] = dr.ItemArray[0].ToString();
drw["重量"] = dr.ItemArray[1].ToString();
drw["编号"] = textBox1.Text.ToUpper().Trim();
dt.Rows.Add(drw);
}

本文介绍了一个使用LINQ来合并两个DataTable的示例代码,并确保相同的数据行不会被重复合并。通过对源DataTable进行筛选,实现了只有当两表中对应字段(如'镭射序号'和'编号')不一致时才进行合并。
9715

被折叠的 条评论
为什么被折叠?



