如何使用另一个数据表更新数据表?

时间:2017-02-07 13:14:16

标签: c#

我想使用类似的东西加入两个数据表:

update u
set datatable1.column["state"]= datatable2.column["state"]
from datatable1 u
    inner join datatable2 s on
        u.column["header"]= s.column["header"]

linq的语法是什么?

1 个答案:

答案 0 :(得分:1)

您不应该尝试修改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处执行一次,而且每次因为LINQ的延迟执行而访问updateQuery变量时也是如此。如果你不想要这个,你必须创建一个集合,f.e。使用ToListToArray