C# 通过多个字段执行MVC WEB API搜索操作
我正在尝试执行搜索操作。不知何故,我成功地实现了一个列的搜索操作。现在我想搜索多个列。例如,如果我的表格包含姓名、号码、电子邮件、性别。 如果我搜索单词M,并且我的姓名列包含一个字段Mandy,如果我的电子邮件列包含一个字段man@mas.com我希望它们都能显示出来 我该怎么做 查看C# 通过多个字段执行MVC WEB API搜索操作,c#,asp.net,asp.net-mvc,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,我正在尝试执行搜索操作。不知何故,我成功地实现了一个列的搜索操作。现在我想搜索多个列。例如,如果我的表格包含姓名、号码、电子邮件、性别。 如果我搜索单词M,并且我的姓名列包含一个字段Mandy,如果我的电子邮件列包含一个字段man@mas.com我希望它们都能显示出来 我该怎么做 查看 <td>@Html.TextBoxFor(model => model.name, new { @placeholder = "search by name" })</td>
<td>@Html.TextBoxFor(model => model.name, new { @placeholder = "search by name" })</td>
<td><input type="submit" value="search" class="btn-success" /></td>
客户端类:
[HttpPost]
public ActionResult Index(Customer cvm)
{
CustomerClient cc = new CustomerClient();
ViewBag.listCustomers = cc.search(cvm.name);
return View();
}
public IEnumerable<Customer> search(int name)
{
try
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(Base_URL);
client.DefaultRequestHeaders.Accept.Add(new
MediaTypeWithQualityHeaderValue("application/json"));
var result = client.GetAsync(string.Format("customers/search/{0}", name)).Result;
if (result.IsSuccessStatusCode)
return result.Content.ReadAsAsync<IEnumerable<Customer>>().Result;
return null;
}
catch
{
return null;
}
}
[HttpGet]
[Route("search/{name}")]
public HttpResponseMessage search(int name)
{
try
{
var httpresponsemessage = new HttpResponseMessage();
httpresponsemessage.Content = new StringContent(
JsonConvert.SerializeObject(db.customers.Where(
p => p.name.Contains(name)).ToList()));
httpresponsemessage.Content.Headers.ContentType = new
MediaTypeHeaderValue("application/json");
return httpresponsemessage;
}
catch
{
return null;
}
}
假设您正在使用查询,请尝试以下方法:
DECLARE @search NVARCHAR(MAX)
SELECT *
FROM [TABLE_NAME]
WHERE name LIKE '%' + @search + '%' OR number LIKE '%' + @search + '%' OR
email LIKE '%' + @search + '%' OR gender LIKE '%' + @search + '%'
如果您正在使用EF,请尝试下面的一个
db.customers.Where(p => p.name.Contains(name) || p.number.Contains(name)
|| p.email.Contains(name) || p.gender.Contains(name)).ToList();
假设您正在使用查询,请尝试以下方法:
DECLARE @search NVARCHAR(MAX)
SELECT *
FROM [TABLE_NAME]
WHERE name LIKE '%' + @search + '%' OR number LIKE '%' + @search + '%' OR
email LIKE '%' + @search + '%' OR gender LIKE '%' + @search + '%'
如果您正在使用EF,请尝试下面的一个
db.customers.Where(p => p.name.Contains(name) || p.number.Contains(name)
|| p.email.Contains(name) || p.gender.Contains(name)).ToList();
您是否可以尝试添加
或
条件,在这些条件下,您已成功执行了名称
列的搜索操作?发布您的代码!是存储过程还是您尝试过的任何东西@PrashantPimpale我已经发布了代码。您是否可以尝试添加或
条件,在这些条件下,您已成功执行了名称
列的搜索操作?发布您的代码!是存储过程还是您尝试过的任何东西@PrashantPimpale我已经发布了代码。