我如何过滤表和选择行有parentid在id列
本文关键字:选择 parentid id 何过滤 过滤 | 更新日期: 2023-09-27 18:18:24
我的表有两列id, parentid,我想过滤数据以选择有parentid的行(因为可以有行没有parentid行)。
<>之前id parentid1空2 13个14个25 10之前我想要除5,10以外的所有行,因为10不是作为父元素存在的(除非父元素存在,否则没有子元素)。
我想要行与parentid,因为我使用的数据为treeview。我已经尝试了几种方法,但都没有得到我想要的。
var mycol = from t in ds.Tables[0].AsEnumerable()
where t.Field<int>("Id") == t.Fields<int>("ParentId");
select t;
或
DataRow[] drs = ds.Tables[0].Select("ParentId in Id");
不清楚你想要什么
如果想要ParentId不为空的行,请使用其他答案之一。
如果您希望在数据集中的某个地方使用Id作为ParentId的行,请使用如下内容:
var table = ds.Tables[0];
var parentIds = new HashSet<int>(
from row in table.AsEnumerable()
let parentId = row.Field<int?>("ParentId")
where parentId != null
select parentId.Value);
var rowsWhereIdIsAParentId =
from row in table.AsEnumerable()
let id = row.Field<int>("Id")
where parentIds.Contains(id)
select row;
获取ParentId
不为空的行,使用
var rows = from r in ds.Tables[0].Rows.AsEnumerable()
where !r.IsNull("ParentId")
select r;
或
var rows = ds.Tables[0].Rows.AsEnumerable().Where(r => !r.IsNull("ParentId"));