C# 在c语言中结合Datatable和update
我在函数中有一个数据表C# 在c语言中结合Datatable和update,c#,datatable,C#,Datatable,我在函数中有一个数据表 public static DataTable FormulaandRowOrder(DataTable dtRoworder) { DataTable table1 = new DataTable(); // code here return table1; } 表1有Col1和Col2这样的列 为ex调用函数后,我的函数名为DataFeed 上面的函数进行了一些编码,在表3中有一些值。表3的列与Col1和Col2相同 现在我想用表3的值
public static DataTable FormulaandRowOrder(DataTable dtRoworder)
{
DataTable table1 = new DataTable();
// code here
return table1;
}
表1有Col1和Col2这样的列
为ex调用函数后,我的函数名为DataFeed
上面的函数进行了一些编码,在表3中有一些值。表3的列与Col1和Col2相同
现在我想用表3的值更新表1。我该怎么做?
表1和表3的结构相同,但表3包含一些新值,必须将它们添加到表1中。一种方法是读取表3中的所有新行并将它们复制到表1中。您可以通过LINQ或简单的for循环来实现这一点。如果表3包含表1中的所有行,并且还包含一些新行,则只需使用表1.clear;表1.3 否则,使用Linq从表3获取所有新行,并将其添加到表1中 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();
}
所有表是否都具有相同的结构,即列?表1和表3具有相同的结构
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();
}