Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
C# Linq将替换数据表值_C#_Asp.net_Linq - Fatal编程技术网

C# Linq将替换数据表值

C# Linq将替换数据表值,c#,asp.net,linq,C#,Asp.net,Linq,我有一个如下所示的数据表: 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 试试这个 IEnumerable<DataRow>

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

 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
试试这个

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;
}
IEnumerable rows=来自DataTableObj.AsEnumerable()中的行
选择行;
foreach(数据行中的行)
{
如果(将.ToInt32(行[“FKID1”])=-1)
行[“FKID1”]=DBNull.Value;
如果(将.ToInt32(行[“FKID2”])=-1)
行[“FKID2”]=DBNull.Value;
}

到目前为止您是否尝试过任何操作?FKID列是否可以为空?DB方案有助于理解问题。什么数据表?ADO.NET、Winforms、ASP.NET MVC?@Garath、
DataTable
将保持不变all@mbxFKID是以db为单位的整数列。我能做到吗。我将此表绑定到aspx上的gridview。我不希望-1出现我希望标题为空无法使用类似datatable的内容跳过foreach循环。选择(x=>new fkid1=x.fkid1==-1?“:x.fkid1)@Eve Linq=Language IntegratedQuery@Eve-这将创建新的对象,为此,我认为您需要创建新的datatable。您没有影响现有的datatable…从操作性能方面看,哪一个更好?修改现有的或创建新的altogether@Eve-修改当前的..这是个好主意,而不是创建新的