Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用LINQ从另一个表更新DataTable_Linq_Datatable - Fatal编程技术网

使用LINQ从另一个表更新DataTable

使用LINQ从另一个表更新DataTable,linq,datatable,Linq,Datatable,我有两个如下所示的数据表: 数据表1: cheie_primara cheie_secundara judet localitate 1 11 A 2 22 B 3 33 C 4

我有两个如下所示的数据表: 数据表1:

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
中执行此操作?