配合js实现动态化查询

不需要写任何if来判断参数拼接SQL,简便效率

一.前端

<form id="search" class="form-horizontal" role="form">
                    <div class="form-group col-sm-6 col-md-6">
                        <label title="标题" class="control-label col-sm-3">
                            用户名称
                        </label>
                        <div class="col-sm-9">
                            <input class="form-control" type="text" name="name" data-operator="6" /><!--6  模糊查询-->
                        </div>
                    </div>
                    <div class="form-group col-sm-6 col-md-6">
                        <label title="创建时间" class="control-label col-sm-3">
                            创建时间
                        </label>
                        <div class="col-sm-9">
                            <input class="form-control date" type="text" name="createDate" data-operator="16" data-table="users" data-type="6" />
                            <!--
                                data-operator="16"  是大于等于
                                data-type="6"  是时间格式
                                -->
                        </div>
                    </div>
                    <div class="form-group col-sm-6 col-md-6 operating">
                        <a class="btn btn-primary" href="javascript:void(0)" onclick="users.init()">查询</a>
                    </div>
                </form>

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

然后使用$("#search").serializeQuery();获取动态化参数对象

更多配置符

data-operator 操作符
13 等于(Equal)
16 大于等于(>=)
21 小于等于(<=)
6 模糊查询(Contains)
   
data-type 值类型
16 String
6 DateTime
   

 

如果是多表需要配置data-table,data-table对应表名,需要在程序启动时注册 

QuerySet<T>.Register(typeof(T));

[LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询 随笔 第1张[LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询 随笔 第2张

二.后端cs代码

  /// <param name="dynamicWhere">动态化参数对象</param>

  public JsonResult Query(Dictionary<string, DynamicTree> dynamicWhere = null)
        {

  using (var conn = new SqlConnection("数据库连接字符串"))
            {
                var result = conn.QuerySet<users>().Where(dynamicWhere).ToList();
               return result ;
            }

}

完整Demo可以去Github上下载:

https://github.com/a935368322/Kogel.Dapper.Test

如有问题也可以加QQ群讨论:

技术群 305678651

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄