当前位置:  开发笔记 > 编程语言 > 正文

LIKE在"where"LINQ语句导致错误

如何解决《LIKE在"where"LINQ语句导致错误》经验,为你挑选了1个好方法。

ProductModel.cs:(上课)

public List GetSearchedProduct (string Name)
{
    try
    {
        using (garagedbEntities db = new garagedbEntities())
        {
            List products = (from x in db.Products
                                      where x.Name LIKE @txtSearch
                                      select x).ToList();
            return products;
        }
    }
    catch (Exception)
    {
        return null;
    }
}

search.aspx:

 <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master"   AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>





    
    

 

这是我的search.aspx档案.实际上我想得到的名称productTextBox然后传递给检索的方法products.



1> Salah Akbari..:

在linq中你应该使用Contains:

List products = (from x in db.Products
                           where x.Name.Contains(Name)
                           select x).ToList();

编辑:要使用方法,您应该创建一个新实例,ProductModel然后调用该GetSearchedProduct方法并将其txtSearch作为参数发送给它.像这样:

protected void btnSearch_OnClick(object sender, EventArgs e)
{
    ProductModel pr = new ProductModel();
    var result = pr.GetSearchedProduct(txtSearch.Text);
}


@AliIrfan我猜你想要使用你传递给你的方法的`Name`参数.请注意,`Contains`与在SQL查询中在字符串的开头和结尾放置%通配符相同.
推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有