【问题标题】:Searching multiple Item in one TextBox Asp.Net Mvc在一个 TextBox Asp.Net Mvc 中搜索多个项目
【发布时间】:2021-06-04 19:57:29
【问题描述】:

首先感谢这个社区提供的帮助 我有一个问题,我的客户想一次性更新数据库中的记录。 所以解决方案是他在Excel中用“,”分隔他的对象,然后复制/粘贴到一个文本框,这个东西 查询是否适用于单个记录,但对于许多它不起作用。

代码如下 对于模型

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;

命名空间激活.Models { 公共部分类 BDD { [必需的] [字符串长度(50)] 公共字符串代码 { 获取;放; }

    [Required]
    [StringLength(50)]
    public string NOM { get; set; }

    [Required]
    [StringLength(50)]
    public long TYPE{ get; set; }

    [Key]
   
    public Long NBR { get; set; }

    public bool STATUS { get; set; }

    [Required]
    public string OBSERVATION { get; set; }

    [Column(TypeName = "date")]
    public DateTime? DATE_MAJ { get; set; }
}

}

控制器:

public ActionResult Index(string  search)
    {
        var query = _context.BDD.ToList();

        if (search == null)
            query = _context.Database.SqlQuery<BDD>("select * from [BDD] where CONVERT (varchar,[NBR])IN(@p0)", search).ToList();
        else
        {
            string x = addComa(search);
         
           query = _context.BDD.SqlQuery("select * from [BDD] where CONVERT (varchar,[NBR])IN (@search)", new SqlParameter("@search", x)).ToList();



        }


        return View(query);
       
        
    }

和视图


    @model IEnumerable<SimActivation.Models.BDD_ARPT>

@{
    ViewBag.Title = "Test";
}

<h2>Search</h2>



@using (Html.BeginForm("Index", "BDD"))
{
    <b>@Html.TextBox("search") 
    <input type = "submit" name = "submit"value = "Search" /></b>
    }

... table code

what i want is something like that were the number's are multiple records in the Database [enter image description here][1]


  [1]: https://i.stack.imgur.com/zL4hA.png

thanks again for the help 

【问题讨论】:

  • 如果query = _context.Database.SqlQuery&lt;BDD&gt;("select * from [BDD] where CONVERT (varchar,[NBR])IN(@p0)", search).ToList(); 按预期工作,那么您也可以将其用于其他情况。我建议将查询保存在字符串变量中,然后放置一个断点,看看它的值是什么。它将帮助您检查您的查询是对还是错
  • 问题是查询正常但点击搜索按钮时不显示任何记录

标签: c# asp.net-mvc entity-framework search


【解决方案1】:

你可以使用 Linq 来做:

var values = search.Split(",");  
query = _context.BDD.Where(b => values.Contains(b.NBR)).ToList();

别忘了包含System.Linq

using System.Linq;

【讨论】:

  • 它确实有效,非常感谢你,尽管对于 values = search.Split(",");应该是这样 String [] x = search.Split(',') 再次感谢
猜你喜欢
  • 2021-02-19
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
相关资源
最近更新 更多