2013-04-16 2 views
0

У меня есть DataTable, который выглядит, как показано ниже:Linq заменить DataTable значения

ID Name FKID1 FKID2 
1 ABC -1 -1 
2 ABD -1 -1 
3 ABE -1  2 
4 BCD 1  3 

Как я использовать LINQ для замены DataTable значения следующим

ID Name FKID1 FKID2 
1 ABC   
2 ABD 
3 ABE   2 
4 BCD 1  3 
+0

Вы что-то пробовали? –

+0

Являются ли столбцы FKID нулевыми? Схема БД может помочь понять проблему. – mbx

+0

Какая dataTable? ADO.NET, Winforms, ASP.NET MVC? –

ответ

1

попробовать этот

IEnumerable<DataRow> rows = from row in DataTableObj.AsEnumerable() 
           select row; 
foreach (DataRow row in rows) 
{ 
    if(Convert.ToInt32(row["FKID1"])==-1) 
    row["FKID1"] = DBNull.Value; 
    if(Convert.ToInt32(row["FKID2"])==-1) 
    row["FKID2"] = DBNull.Value; 
} 
+0

нет способа пропустить цикл foreach, используя что-то вроде datatable.select (x => new fkid1 = x.fkid1 == -1? "": X.fkid1) – Eve

+0

@Eve Linq = Интегрированный язык ** Запрос * * – I4V

+0

@Eve - это создаст новый объект, и для этого я думаю, что вы стали новым datatable..ie вы не влияете на существующий datatable ... –