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-修改当前的..这是个好主意,而不是创建新的