繁体   English   中英

如何使用 .Net Linq 获取父母记录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM