如何解决如何使用.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
要专门从搜索中获取所有父ID,例如:
var parentRows = dt.AsEnumerable().Where(x => x["ParentID"] != DBNull.Value && searchText.Contains((string)x["Code"])).Select(x => (int)x["ParentID"]).ToList();
您在正确的轨道上!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。