[LINQ2Dapper]最完整Dapper To Linq框架(二)---動態化查詢


目錄

 

配合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>


然后使用$("#search").serializeQuery();獲取動態化參數對象

serializeQuery()方法的代碼實現

$.fn.serializeQuery = function() {
    var dynamicWhere = {};
    var inputArr = $(this).find("input");
    for (var i = 0; i < inputArr.length; i++) {
        var item = $(inputArr[i]);
        //生成一個唯一鍵 
        var key = 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g,
        function(c) {
            var r = Math.random() * 16 | 0,
            v = c == 'x' ? r: (r & 0x3 | 0x8);
            return v.toString(16);
        }); //值 var value = { Table: item.attr("data-table"),//查詢的表(默認為后台設置) 
        Field: item.attr("name"),
        //字段名(必填) Operators: item.attr("data-operator"),//運算符(默認為13,Equal) 
        Value: item.val(),
        //值 ValueType: item.attr("data-type"),//值類型(默認為16,string) }; 
        dynamicWhere[key] = value;
    }
    return dynamicWhere;
}

  

更多配置符

如果是多表需要配置data-table,data-table對應表名,需要在程序啟動時注冊 

EntityCache.Register(typeof(T));

 

  1. 二.后端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群討論:

技術群 710217654

框架開源,可以加群下載源碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM