[英]how to get parents records using .Net Linq
我有一个名为 dt 的数据表
在这个表中有记录
ID Code FullTxt ParentID
1 A Tom NULL
2 A1 John 1
3 A2 Rich 1
4 A11 Carol 2
5 A12 Nancy 2
6 A21 Ali 3
7 B Mark NULL
当用户搜索 A21 时,我过滤 dt 以找到 A21,然后将其作为更新的数据表发送
这是我的代码
DataTable dx = null;
var rows = dt.AsEnumerable()
.Where(x => x["FullTxt"].ToString().Contains(SearchTxt)
|| x["Code"].ToString().Contains(SearchTxt)
);
if (rows.Any())
dx = rows.CopyToDataTable();
我需要在此过滤器中包含父母记录
如果用户搜索 A21
那么这些记录应该包含在过滤结果中
ID Code FullTxt ParentID
1 A Tom NULL
3 A2 Rich 1
6 A21 Ali 3
我尝试将我的代码更新为此,但它不起作用
var rows = dt.AsEnumerable()
.Where(x => x["FullTxt"].ToString().Contains(SearchTxt)
|| x["Code"].ToString().Contains(SearchTxt) || x["ID"] = x["ParentID"]
);
知道如何让它工作吗?
就像是:
var rows = dt.AsEnumerable().Where(x => searchText.Contains((string)x["Code"])).ToList();
其中 x.Field < string >(1) 的目标是包含字符串值的第二列(“代码”)。
要专门从搜索中获取所有父 ID,例如:
var parentRows = dt.AsEnumerable().Where(x => x["ParentID"] != DBNull.Value && searchText.Contains((string)x["Code"])).Select(x => (int)x["ParentID"]).ToList();
你走对了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.