LINQ 查询返回多个结果

发布于 2024-07-11 02:02:10 字数 537 浏览 7 评论 0原文

我正在尝试编写一个文本框,它将搜索 5 个数据库列,并返回给定搜索的每个结果,例如。 “Red”将返回:red ball、Red Williams 等。人们尝试过的任何例子或类似的事情。 我的搜索示例代码。

谢谢。

    ItemMasterDataContext db = new ItemMasterDataContext();

    string s = txtSearch.Text.Trim();
    var q = from p in db.ITMSTs
            where p.IMITD1.Contains(s) ||
             p.IMITD2.Contains(s) ||
             p.IMMFNO.Contains(s) ||
             p.IMITNO.Contains(s) ||
             p.IMVNNO.Contains(s)
            select p;

    lv.DataSource = q;
    lv.DataBind();

I am trying to write a textbox that will search on 5 DB columns and will return every result of a given search, ex. "Red" would return: red ball, Red Williams, etc. Any examples or similar things people have tried. My example code for the search.

Thanks.

    ItemMasterDataContext db = new ItemMasterDataContext();

    string s = txtSearch.Text.Trim();
    var q = from p in db.ITMSTs
            where p.IMITD1.Contains(s) ||
             p.IMITD2.Contains(s) ||
             p.IMMFNO.Contains(s) ||
             p.IMITNO.Contains(s) ||
             p.IMVNNO.Contains(s)
            select p;

    lv.DataSource = q;
    lv.DataBind();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

暗恋未遂 2024-07-18 02:02:10

您的示例中的“q”将是一个 IQueryable。 我认为 WebControl 的 Datasource 属性不知道如何处理它。 尝试将该行写为:

 lv.DataSource = q.ToList();

"q" in your example will be an IQueryable<ITMST>. I don't think the Datasource property of WebControl know what to do with that. try writing that line as:

 lv.DataSource = q.ToList();
饮惑 2024-07-18 02:02:10

您可以执行类似的操作(语法可能已关闭),

using(var db = new ItemMasterDataContext())
{
    var s = txtSearch.Text.Trim();
    var result = from p in db.ITMSTs select p;

    if( result.Any(p=>p.IMITD1.Contains(s))
         lv.DataSource = result.Where(p=>p.IMITD1.Contains(s))
    else if ( result.Any(p=>p.IMITD2.Contains(s))
        lv.DataSource = result.Where(p=>p.IMITD1.Contains(s))

    lv.DataBind();
}

或者您可能想使用此 链接或此链接< /a> 来自 MSDN。

快乐编码!

You can do something like this (syntax may be off )

using(var db = new ItemMasterDataContext())
{
    var s = txtSearch.Text.Trim();
    var result = from p in db.ITMSTs select p;

    if( result.Any(p=>p.IMITD1.Contains(s))
         lv.DataSource = result.Where(p=>p.IMITD1.Contains(s))
    else if ( result.Any(p=>p.IMITD2.Contains(s))
        lv.DataSource = result.Where(p=>p.IMITD1.Contains(s))

    lv.DataBind();
}

or you might want to use this Link or this Link from MSDN.

Happy Coding!!

素染倾城色 2024-07-18 02:02:10

您所拥有的通常是人们使用 linq 所做的事情。 如果您想变得更复杂并使用数据库通配符,请查看 System.Data.Linq 中的 SqlMethods 类。

@詹姆斯·柯兰
您可以分配 DataSource 属性 q ,它会正常工作。 唯一的不同是查询执行的时间。

What you have is generally what people would do using linq. If you wanted to get more complex and use database wild cards then take a look at the SqlMethods class in System.Data.Linq.

@ James Curran
You can assign the DataSource property q and it will work fine. The only different is when the query gets executed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文