2016-06-01 1 views
1

Привет У меня есть два DataTableОбновление DataTable поля на основе значения существуют в другом DataTable в ASP.Net C#

стол

 
id isfav 
1 0 
2 0 
3 0 
4 0 
5 0 

favtable

 
id 
2 
3 

Так что я хочу, чтобы обновить table1 Поле isFav 1, если существует ids в FavTable.

Может кто-нибудь помочь мне в этом

+0

написать некоторый код первого – prospector

+0

Является ли это 'Database' таблицы или C#' datatable'? – Mairaj

+0

csharp datatable –

ответ

1

В SQL ...

UPDATE table SET isfav = 1 WHERE EXISTS(SELECT * FROM favtable WHERE favtable.id = table.id) 

В Linq к SQL ...

//Create DataContext first 

foreach (var rec in from a in dc.table 
        join b in dc.favtable on a.id equals b.id 
        select a) 
{ 
    a.isfav = true; 
} 

dc.SubmitChanges(); 

... или (более эффективный) .. .

dc.ExecuteCommand("UPDATE table SET isfav = 1 WHERE EXISTS(SELECT * FROM favtable WHERE favtable.id = table.id)"); 
0

Поскольку в комментариях было упомянуто это DataTable, вы можете использовать Join между этими таблицами, как показано ниже, и обновить поле.

table1.AsEnumerable() 
     .Join(table2.AsEnumerable(), 
      t1 => t1.Field<int>("id"), 
      t2 => t2.Field<int>("id"), 
      (t1, t2) => new { t1 }) 
     .ToList() 
     .ForEach(o => o.t1["isfav"] = 1); 

Проверить это working code

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