C# 搜索栏在asp.net中搜索产品名称
我只是想通过搜索栏从数据库中获取results.aspx中的产品名称,但我只能通过其共同响应者编号获取产品 以下是有效的代码: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;
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;
}
返回查询;
}