我在函数中有一个DataTable
,
public static DataTable FormulaandRowOrder(DataTable dtRoworder)
{
DataTable table1 = new DataTable();
// code here
return table1;
}
tables1
包含Col1
和Col2
等列。
在调用ex函数后,我的函数名是DataFeed
。
public static DataTable[] DataFeed (DataTable table2, DataTable table3)
{
//code here
return new DataTable[] { table2, table3 };
}
上述函数进行了一些编码,并在table3
中有一些值。并且table3
与Col1
和Col2
现在,我想使用table1
值更新table3
。我怎样才能做到这一点?
table1
和table3
具有相同的结构,但table3
包含一些新值,必须将其添加到table1
。
答案 0 :(得分:0)
执行此操作的一种方法是从表3中读取所有新行并将其复制到table1中。您可以通过LINQ或简单的循环来完成此任务。
答案 1 :(得分:0)
如果table3包含table1中的所有行并且还包含一些新行,那么只需使用
table1.clear();
table1.Merge(table3)
否则使用Linq从table3获取所有新行并将其添加到table1中 C#代码是......
var rowNotIntable1 = table3.AsEnumerable().Select(r => r.Field<string>("col1"))
.Except(table1.AsEnumerable().Select(r =>r.Field<string>("col1")));
if (rowNotIntable1 .Count() > 0)
{
DataTable dt = (from row in table3.AsEnumerable()
join id in rowNotIntable1
on row.Field<string>("col1") equals id
select row).CopyToDataTable();
}
foreach (DataRow row in dt.Rows)
{
table1.ImportRow(row);
table1.AcceptChanges();
}