C# 进行datarow Select()查询

C# 进行datarow Select()查询,c#,asp.net,C#,Asp.net,问题是我有一个数据行数组,其中包含ID和父ID作为其字段 我使用了以下代码,它返回了正确的值 datarow [] dt = datarow.select(" Parent = '0' "); 我只想选择那些没有“0”作为其父行的行。我知道sql我不了解select函数的工作原理 试试这个: DataRow[] dt = dt.Select("Parent != '0'"); dt[0][Your Column Name] = your value; 试试这个: DataRow[] dt

问题是我有一个数据行数组,其中包含ID和父ID作为其字段

我使用了以下代码,它返回了正确的值

datarow [] dt = datarow.select("  Parent = '0' ");
我只想选择那些没有“0”作为其父行的行。我知道sql我不了解select函数的工作原理

试试这个:

DataRow[] dt = dt.Select("Parent != '0'");
dt[0][Your Column Name] = your value;
试试这个:

DataRow[] dt = dt.Select("Parent != '0'");
dt[0][Your Column Name] = your value;

尝试使用LINQ-下面是一个示例,我认为这就是您想要的:

  DataTable dt = new DataTable("Example");
  dt.Columns.Add("ID", typeof(int));
  dt.Columns.Add("ParentID", typeof(int));
  dt.Rows.Add(1, 0);
  dt.Rows.Add(1, 1);

  var equal0 = dt.Rows.Cast<DataRow>().Where(x => x.Field<int>("ParentID") == 0);
  var notEqual0 = dt.Rows.Cast<DataRow>().Where(x => x.Field<int>("ParentID") != 0);
DataTable dt=新的DataTable(“示例”);
添加(“ID”,typeof(int));
添加(“ParentID”,typeof(int));
dt.Rows.Add(1,0);
dt.行。添加(1,1);
var equal0=dt.Rows.Cast(),其中(x=>x.Field(“ParentID”)==0);
var notEqual0=dt.Rows.Cast(),其中(x=>x.Field(“ParentID”)!=0);
您将获得一个数据行列表,其中父ID等于0,而列表不等于0

编辑:

我看到您正在尝试选择-何处是备选方案,并执行您想要执行的操作。这将基于bool条件进行过滤,以便您可以在ParentID大于x或小于等的情况下进行过滤


我希望您会觉得这很有用。

尝试使用LINQ-下面是一个示例,我想这就是您想要的:

  DataTable dt = new DataTable("Example");
  dt.Columns.Add("ID", typeof(int));
  dt.Columns.Add("ParentID", typeof(int));
  dt.Rows.Add(1, 0);
  dt.Rows.Add(1, 1);

  var equal0 = dt.Rows.Cast<DataRow>().Where(x => x.Field<int>("ParentID") == 0);
  var notEqual0 = dt.Rows.Cast<DataRow>().Where(x => x.Field<int>("ParentID") != 0);
DataTable dt=新的DataTable(“示例”);
添加(“ID”,typeof(int));
添加(“ParentID”,typeof(int));
dt.Rows.Add(1,0);
dt.行。添加(1,1);
var equal0=dt.Rows.Cast(),其中(x=>x.Field(“ParentID”)==0);
var notEqual0=dt.Rows.Cast(),其中(x=>x.Field(“ParentID”)!=0);
您将获得一个数据行列表,其中父ID等于0,而列表不等于0

编辑:

我看到您正在尝试选择-何处是备选方案,并执行您想要执行的操作。这将基于bool条件进行过滤,以便您可以在ParentID大于x或小于等的情况下进行过滤


我希望您觉得这很有用。

我们是否可以在
DataRow[]
数组上直接
选择
Where
,而不是首先构建
DataTable
?我们是否可以直接在
DataRow[]上选择
Where
数组而不是先构建
数据表