zoukankan      html  css  js  c++  java
  • 参数化构造的通用查询方法

    下面是一个非分页的参数化构造的通用查询方法

            /// <summary>
            /// 参数化查询数据表
            /// </summary>
            /// <param name="dbHelper">数据库连接</param>
            /// <param name="tableName">表明</param>
            /// <param name="parameters">查询的参数</param>
            /// <param name="conditions">查询条件</param>
            /// <param name="topLimit">前多少条</param>
            /// <param name="order">排序</param>
            /// <param name="fields">查询的字段</param>
            /// <returns>数据表</returns>
            public static DataTable GetDataTable(IDbHelper dbHelper, string tableName, List<KeyValuePair<string, object>> parameters, string conditions, int topLimit = 0, string order = null, string fields = " * ")
            {
                string sqlQuery = "SELECT " + fields + " FROM " + tableName;
                string whereSql = string.Empty;
                if (topLimit != 0)
                {
                    switch (dbHelper.CurrentDbType)
                    {
                        case CurrentDbType.Access:
                        case CurrentDbType.SqlServer:
                            sqlQuery = "SELECT TOP " + topLimit.ToString() + fields + " FROM " + tableName;
                            break;
                        case CurrentDbType.Oracle:
                            whereSql = " ROWNUM < = " + topLimit;
                            break;
                    }
                }
                // 要传入 conditions
                if (!string.IsNullOrEmpty(conditions))
                {
                    conditions = " WHERE " + conditions;
                }
                sqlQuery += conditions + whereSql;
                if ((order != null) && (order.Length > 0))
                {
                    sqlQuery += " ORDER BY " + order;
                }
                var dt = new DataTable(tableName);
                if (topLimit != 0)
                {
                    switch (dbHelper.CurrentDbType)
                    {
                        case CurrentDbType.MySql:
                            sqlQuery += " LIMIT 0, " + topLimit;
                            break;
                    }
                }
                if (parameters != null && parameters.Count > 0)
                {
                    dt = dbHelper.Fill(sqlQuery, dbHelper.MakeParameters(parameters));
                }
                else
                {
                    dt = dbHelper.Fill(sqlQuery);
                }
                return dt;
            }
    

    该方法在吉日通用权限管理的DotNet.Business.DbLogic中可见

    调用方法

     List<KeyValuePair<string, object>> dbParameters = new List<KeyValuePair<string, object>>();
      conditions  ....
    
     DataTable dtResult = CommonManager.GetDataTable(dbHelper, tableName, dbParameters, conditions,0, orderBy, selectField);
    

                   

  • 相关阅读:
    2015531 网络攻防 Exp1 PC平台逆向破解(5)M
    2017-2018-1 20155331 嵌入式C语言
    20155330 《网络对抗》 Exp9 web安全基础实践
    20155330 《网络对抗》 Exp8 Web基础
    20155330 《网络对抗》 Exp7 网络欺诈防范
    20155330 《网络对抗》 Exp6 信息搜集与漏洞扫描
    20155330 《网络对抗》 Exp5 MSF基础应用
    20155330 《网络攻防》 Exp4 恶意代码分析
    20155330 《网络攻防》 Exp3 免杀原理与实践
    20155330 《网络对抗》 Exp2 后门原理与实践
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/3676839.html
Copyright © 2011-2022 走看看