2017-02-07 2 views
0

Я хочу присоединиться два DataTables использовать что-то вроде этого:Как обновить datatable с другим datatable?

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

Вот он: [Введение LINQ To Dataset] (https://www.tutorialspoint.com/linq/linq_dataset.htm) –

ответ

0

Вы не должны пытаться что-то изменить из 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.

+0

resolved.Thanks alot –

Смежные вопросы