使用LINQ从另一个表更新DataTable
我有两个如下所示的数据表: 数据表1:使用LINQ从另一个表更新DataTable,linq,datatable,Linq,Datatable,我有两个如下所示的数据表: 数据表1: cheie_primara cheie_secundara judet localitate 1 11 A 2 22 B 3 33 C 4
cheie_primara cheie_secundara judet localitate
1 11 A
2 22 B
3 33 C
4 44 D
5 55 A
6 66 B
7 77 C
8 88 D
9 99 A
数据表2:
ID_CP BAN JUDET LOCALITATE ADRESA
1 11 A aa random
2 22 B ss random
3 33 C ee random
4 44 D xx random
5 55 A rr random
6 66 B aa random
7 77 C ss random
8 88 D ee random
9 99 A xx random
我想使用加工键DataTable1[“cheie_primara”]和DataTable2[“ID_CP”]用字段[“localate”]更新DataTable 1。
像这样:
cheie_primara cheie_secundara judet localitate
1 11 A aa
2 22 B ss
3 33 C ee
4 44 D xx
5 55 A rr
6 66 B aa
7 77 C ss
8 88 D ee
9 99 A xx
是否有LINQ方法更新DataTable1?
谢谢 如果你想使用Linq,我会这样做
var a = (from d1 in DataTable1
join d2 in DataTable2 on d1.cheie_primara equals d2.ID_CP
select new {d1, d2.LOCALITATE}).ToList();
a.ForEach(b => b.d1.localitate = b.LOCALITATE);
这是有效的:
DataTable1.AsEnumerable()
.Join( DataTable2.AsEnumerable(),
dt1_Row => dt1_Row.ItemArray[0],
dt2_Row => dt2_Row.ItemArray[0],
(dt1_Row, dt2_Row) => new { dt1_Row, dt2_Row })
.ToList()
.ForEach(o =>
o.dt1_Row.SetField(3, o.dt2_Row.ItemArray[3]));
您可以在
DataTable
上使用简单的raw sql
来实现这一点,为什么需要在LINQ
中执行此操作?