C# 搜索栏在asp.net中搜索产品名称

C# 搜索栏在asp.net中搜索产品名称,c#,asp.net,C#,Asp.net,我只是想通过搜索栏从数据库中获取results.aspx中的产品名称,但我只能通过其共同响应者编号获取产品 以下是有效的代码: public IQueryable<Product> GetProduct([QueryString("srch")] int? ProductId) { var _db = new project.Models.ProductContext(); IQueryable<Product> query = _db.Products;

我只是想通过搜索栏从数据库中获取results.aspx中的产品名称,但我只能通过其共同响应者编号获取产品

以下是有效的代码:

public IQueryable<Product> GetProduct([QueryString("srch")] int? ProductId)
{
    var _db = new project.Models.ProductContext();
    IQueryable<Product> query = _db.Products;
    if (ProductId.HasValue && ProductId > 0)
    {
        query = query.Where(p => p.ProductID == ProductId);
    }
    else
    {
        query = null;
    }
    return query;
}
public IQueryable GetProduct([QueryString(“srch”)]int?ProductId)
{
var_db=new project.Models.ProductContext();
IQueryable查询=_db.Products;
if(ProductId.HasValue&&ProductId>0)
{
query=query.Where(p=>p.ProductID==ProductID);
}
其他的
{
query=null;
}
返回查询;
}
但是,当我想通过产品名称查看搜索结果时,我面临一个问题。不起作用的代码是:

public IQueryable<Product> GetProduct([QueryString("srch")] int? ProductName)
{
    var _db = new project.Models.ProductContext();
    IQueryable<Product> query = _db.Products;
    if (ProductName.HasValue && ProductName > 0)
    {
        query = query.Where(p => p.ProductName= "srch");
    }
    else
    {
        query = null;
    }
    return query;
}
public iQueryTable GetProduct([QueryString(“srch”)]int?ProductName)
{
var_db=new project.Models.ProductContext();
IQueryable查询=_db.Products;
如果(ProductName.HasValue&&ProductName>0)
{
query=query.Where(p=>p.ProductName=“srch”);
}
其他的
{
query=null;
}
返回查询;
}

您希望按产品名称搜索,但分配的数据类型为int。您的语法中也缺少一个
=
,这将导致生成错误

    public IQueryable<Product> GetProduct([QueryString("srch")] string ProductName)
    {
        var _db = new project.Models.ProductContext();
        IQueryable<Product> query = _db.Products;
        if (!string.IsNullOrEmpty(ProductName))
        {
            query = query.Where(p => p.ProductName == ProductName);
        }
        else
        {
            query = null;
        }

        return query;
    }
public IQueryable GetProduct([QueryString(“srch”)]string产品名称)
{
var_db=new project.Models.ProductContext();
IQueryable查询=_db.Products;
如果(!string.IsNullOrEmpty(ProductName))
{
query=query.Where(p=>p.ProductName==ProductName);
}
其他的
{
query=null;
}
返回查询;
}

给定代码中存在语法错误和逻辑错误,使用整数值进行搜索查询,与该代码进行简单比较将帮助您了解错误所在

您应该使用
=
进行比较,希望您了解
=
,它在c#中用于赋值。您的代码将始终将产品名称与
“srch”
进行比较,因为您将值与字符串
“srch”
进行比较,因此应使用传递给函数的参数。还有一件事需要更改参数的类型。它仍然是int,您应该将其设置为字符串(假设
ProductName
将是字符串),因此您的查询如下:

public IQueryable<Product> GetProduct([QueryString("srch")] string ProductName)
{
     var _db = new project.Models.ProductContext();
     IQueryable<Product> query = _db.Products;
     if (!string.IsNullOrEmpty(ProductName))
     {
         query = query.Where(p => p.ProductName == ProductName);
     }
     else
     {
         query = null;
     }
     return query;
}
public IQueryable GetProduct([QueryString(“srch”)]string产品名称)
{
var_db=new project.Models.ProductContext();
IQueryable查询=_db.Products;
如果(!string.IsNullOrEmpty(ProductName))
{
query=query.Where(p=>p.ProductName==ProductName);
}
其他的
{
query=null;
}
返回查询;
}