根据布尔值多条件查询数据

开发工具与关键技术:Visual Studio 与Lambda表达式

作者:黄灿

撰写时间:2019.7.5

根据布尔值多条件查询数据,数据库在类型是Bit类型,只有ture或true,没有为空的情况

html代码:

写一个下拉框,并且赋值上一个value

<div class="form-group form-row">
	<label class="control-label mr-2" for="audit">审核:</label>
	<select class="form-control form-control-sm mr-3" id="selToAuditNo" name="ToAuditNo">
		<option value="1">全部</option>
		<option value="2">已审核</option>
		<option value="3">未审核</option>
	</select>
</div>

Javascript代码:

function conditionSelecPurchase() {
            //获取页面数据
            var ToAuditNo = $("#selToAuditNo").val();//采购订单审核状态
            if (ToAuditNo == 1) {
                ToAuditNo = "";
            }
            if (ToAuditNo == 2) {
                ToAuditNo = "true";
            }
            if (ToAuditNo == 3) {
                ToAuditNo = "false";
            }
            //方法二、方法级渲染的重载
            tabReceipts.reload({
                url: "/ProcurementAndSales/PurchaseOrder/selectPurchaseOrder",
                where: {
                    ToAuditNo: ToAuditNo,,
                },
                page: {
                    curr: 1//重新从第1页开始
                }
            });
        }


在多条件查询的方法中通过ID获取到下拉框的valuer,如果值为1赋值一个空的字符串,值为2赋值ture,值为3赋值为false,以字符串的形式传递到控制器

重载的方法是layui插件的方法

控制器Controller代码:

查询的字段有点多,所以只列举出根据布尔值查询的代码

public ActionResult selectPurchaseOrder(string ToAuditNo)

javascript传递过来的是字符串,所以控制器这边接收也使用string类型接收

查询条件

            if (ToAuditNo == "")
            {
            }
            if (ToAuditNo == "true")
            {
                listResult = listResult.Where(m
=> m.ToAuditNo.Equals(true)).ToList();//查询已审核数据 bool类型
            }
            if (ToAuditNo == "false")
            {
                listResult = listResult.Where(m
=> m.ToAuditNo.Equals(false)).ToList();//查询未审核数据 bool类型

            }

如果接收到的值为空字符串,就不写条件查询,这样ture和false的数据都会被查询出来,如果接收的字符串为true或false那么就使用Lambda表达式写条件查询的代码,Lambda表达式 运算符=>左边是参数(如果有就写如果没有就不写),右边是表达式或语句

Equals是等于的意思,也可以这样子写ToAuditNo==false,效果是一样的,如果接受的字符串是true就查询出数据库Bit类型字段为true的数据,如果接受的字符串是false就查询出数据库Bit类型字段为false的数据

猜你喜欢

转载自blog.csdn.net/weixin_44542088/article/details/94768009