我想使用这样的方法连接两个数据表:
update u
set datatable1.column["state"]= datatable2.column["state"]
from datatable1 u
inner join datatable2 s on
u.column["header"]= s.column["header"]
linq 的语法是什么?
最佳答案
您不应尝试在 LINQ 查询中修改某些内容。如果 LINQ 查询引起副作用,这是一种不好的做法。但您可以收集需要更新的信息:
var updateQuery = from r1 in datatable1.AsEnumerable()
join r2 in datatable2.AsEnumerable()
on r1.Field<string>("header") equals r2 .Field<string>("header")
select new { r1, r2 };
foreach(var x in updateQuery)
{
x.r1.SetField("state", x.r2.Field<string>("state"));
}
该查询实际上只是一个查询,它仅在foreach
处执行一次,而且每次访问updateQuery
时都会执行 -由于 LINQ 的延迟执行而导致的变量。如果你不想要这个,你必须创建一个集合,例如与 ToList
或 ToArray
。
关于c# - 如何用另一个数据表更新一个数据表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42090818/