模糊查询

1、 在业务流程里时常使用到模糊查询,模糊查询是通过在输入的查询条件作为一个子字符串到一个字符串中查询是否查询此子字符串。如现在有一个字符串未“张三和李四”,输入“张三”或者“李四“都可以查询到此字符串。因为“张三”和“李四“都是属于字符串“张三和李四”的子字符串。那么就可以根据这种原理去查询数据是通过筛选数据。
2、 如下图所示,看搜索区域,可以通过仓库编号、仓库名称、联系人、电话来查询数据、而成是可以模糊查询的。在试图我们只需要把搜索条件内容传递到控制器中,在控制器中筛选数据
在这里插入图片描述

3、代码如下
  //仓库信息查询
        public ActionResult WarehouseInformation(string MultipleParts, LayuiTablePage layuiTablePage)
        {
           //查询出所有的仓库信息
            List<pwWarehouse> strData = (from tb in myModel.PW_Warehouse
                                         join tr in myModel.PW_State on tb.StateID equals tr.StateID
                                         orderby tr.State descending
                                         select new pwWarehouse
                                         {
                                             WarehouseID = tb.WarehouseID,//仓库ID
                                             WarehouseName = tb.WarehouseName,//仓库名称
                                             WarehouseNumber = tb.WarehouseNumber, //仓库编号
                                             WContacts = tb.WContacts == null ? "" : tb.WContacts,//联系人
                                             WContactNumber = tb.WContactNumber == null ? "" : tb.WContactNumber,//联系电话
                                             State = tr.State,//状态 
                                             CDefault = tb.CDefault,//默认否
                                         }).ToList();

           //判断传递过来的搜索条件内容是否未字符串类型的数据
            if (!string.IsNullOrEmpty(MultipleParts))
            {
               //模糊查询,因为搜索条件有四个,所有在这里有四个筛选,只要有一个条件匹配上就可以--- “字符串.Contains(子串)”:返回一个值,该值指示指定的子串是否出现在此字符串中
                strData = strData.Where(m => m.WarehouseName.Contains(MultipleParts) || m.WarehouseNumber.Contains(MultipleParts) || m.WContacts.Contains(MultipleParts) || m.WContactNumber.Contains(MultipleParts)).ToList();
            }
            var myCount = strData.Count();
            List<pwWarehouse> listData = strData
                .Skip(layuiTablePage.GetStartIndex())
                .Take(layuiTablePage.limit).ToList();
            LayuiTableData<pwWarehouse> myData = new LayuiTableData<pwWarehouse>();
            myData.count = myCount;
            myData.data = listData;

            return Json(myData, JsonRequestBehavior.AllowGet);
        }

                                            
,  



3、 注意:当你按照中写法出现如下错误时,是因为你的数据中存在null值,就如我上面的联系人和联系电话来说有时候未录入联系人或者联系人电话,那么就有那么一条或者多条仓库数据的中的联系人和联系电话所对应的字段值为null。在上面说到这个模糊查询是在字符串中判断是否存在传递过来的查询条件的子串,我们要保正两个值都为字符串才能对比匹配,如果数据传过来的是null值,null值是布尔值,那么就存在在null值里匹配是否存在子串,不同数据类型的数据是不能这样子做的,那么就会造成下面的错误。
4、解决方法:WContacts = tb.WContacts == null ? “” : tb.WContacts,//联系人,在获取数据时就去判断一下,返回的值是否是null值。如果是null值就赋值为””,如果不是null就赋值为数据库传递过来的值。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值