C# 通过多个字段执行MVC WEB API搜索操作

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>

我正在尝试执行搜索操作。不知何故,我成功地实现了一个列的搜索操作。现在我想搜索多个列。例如,如果我的表格包含姓名、号码、电子邮件、性别。 如果我搜索单词M,并且我的姓名列包含一个字段Mandy,如果我的电子邮件列包含一个字段man@mas.com我希望它们都能显示出来

我该怎么做

查看

<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我已经发布了代码。