精简的后台程序代码——Select

19 篇文章 0 订阅
  public class Select
    {
        #region Class Members


        private static string SELECT_PAGE_SQL = "SELECT TOP {0} * FROM ( SELECT ROW_NUMBER() OVER ({1}) AS ROW , {2} FROM {3} WHERE {4} ) AS DATALIST WHERE ROW > {5}";
        private static string SELECT_SQL = @"SELECT {0} FROM {1} WHERE {2}";
        /// <summary>
        /// 数据操作类
        /// </summary>
        private DbHelper _DbHelper;
        /// <summary>
        /// 表名
        /// </summary>
        private string _TableName;
        /// <summary>
        /// 列名称/值 的集合
        /// </summary>
        private string _Columns = " * ";
        private string _From;
        private string _Where;
        private string _OrderBy;
        private object _Parameter;
        private DynamicParameters _Parameters = new DynamicParameters();
        /// <summary>
        /// 页码
        /// </summary>
        private int _Page;
        /// <summary>
        /// 每页条数
        /// </summary>
        private int _Rows;


        #endregion


        #region Constructors


        public Select(DbHelper dbHelper, string tableName, string colums)
        {
            _DbHelper = dbHelper;
            _TableName = tableName;
            _Columns = colums;
        }


        #endregion


        #region Methods


        public Select From(string from)
        {
            _From = from;
            return this;
        }


        public Select Where(string where)
        {
            _Where = where;
            return this;
        }


        public Select OrderBy(string orderBy)
        {
            _OrderBy = orderBy;
            return this;
        }


        public Select Parameter(object parameter)
        {
            _Parameter = parameter;
            return this;
        }
        /// <summary>
        /// 条件中的参数
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public Select Parameters(params object[] parameters)
        {
            if (parameters != null)
            {
                for (var i = 0; i < parameters.Length; i++)
                {
                    _Parameters.Add("@" + i, parameters[i]==null?0: parameters[i]);
                }
            }


            return this;
        }
        public Select Paging(int page, int rows)
        {
            _Page = page;
            _Rows = rows;
            return this;
        }


        public IEnumerable<T> Query<T>()
        {
            var sql = string.Empty;
            // 分页
            if (_Rows > 0 && _Page > 0)
            {
                if (string.IsNullOrEmpty(_From))
                    _From = _TableName;


                if (string.IsNullOrEmpty(_Where))
                    _Where = " 1=1 ";


                if (!string.IsNullOrEmpty(_OrderBy))
                    _Where += " Order By" + _OrderBy;


                // 分页
                sql = string.Format(SELECT_PAGE_SQL, _Rows, _OrderBy, _Columns, _From, _Where, (_Page - 1) * _Rows);
            }
            else
            {
                if (string.IsNullOrEmpty(_From))
                    _From = _TableName;


                if (string.IsNullOrEmpty(_Where))
                    _Where = " 1=1 ";


                if (!string.IsNullOrEmpty(_OrderBy))
                    _Where += " Order By" + _OrderBy;


                sql = string.Format(SELECT_SQL, _Columns, _From, _Where);
            }
            return _DbHelper.Query<T>(sql, _Parameter == null ? _Parameters : _Parameter);
        }


        #endregion
    }


    public class Select_T<T>
    {
        #region Class Members


        private static string SELECT_PAGE_SQL = "SELECT TOP {0} * FROM ( SELECT ROW_NUMBER() OVER (Order By {1}) AS ROW , {2} FROM {3} WHERE {4} ) AS DATALIST WHERE ROW > {5}";
        private static string SELECT_SQL = @"SELECT {0} FROM {1} WHERE {2}";
        /// <summary>
        /// 数据操作类
        /// </summary>
        private DbHelper _DbHelper;
        /// <summary>
        /// 表名
        /// </summary>
        private string _TableName;
        /// <summary>
        /// 列名称/值 的集合
        /// </summary>
        private string _Columns = " * ";
        private string _Where;
        private string _OrderBy;
        private string _From;
        private object _Parameter;
        private DynamicParameters _Parameters = new DynamicParameters();
        /// <summary>
        /// 页码
        /// </summary>
        private int _Page;
        /// <summary>
        /// 每页条数
        /// </summary>
        private int _Rows;


        #endregion


        #region Constructors


        public Select_T(DbHelper dbHelper, string tableName, string colums)
        {
            _DbHelper = dbHelper;
            _TableName = tableName;
            _Columns = colums;
        }


        #endregion


        #region Methods


        public Select_T<T> Where(string where)
        {
            _Where = where;
            return this;
        }


        public Select_T<T> OrderBy(string orderBy)
        {
            _OrderBy = orderBy;
            return this;
        }


        public Select_T<T> From(string from)
        {
            _From = from;
            return this;
        }


        public Select_T<T> Page(int page, int rows)
        {
            _Page = page;
            _Rows = rows;
            return this;
        }
        /// <summary>
        /// 条件中的参数
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public Select_T<T> Parameters(params object[] parameters)
        {
            if (parameters != null)
            {
                for (var i = 0; i < parameters.Length; i++)
                {
                    _Parameters.Add("@" + i, parameters[i]==null?0: parameters[i]);
                }
            }


            return this;
        }
        /// <summary>
        /// 初始化参数集合
        /// </summary>
        /// <param name="parameters">所需参数集合</param>
        /// <returns></returns>
        public Select_T<T> Parameter(object parameter)
        {
            _Parameter = parameter;
            return this;
        }
        public IEnumerable<T> Query()
        {
            var sql = string.Empty;
            // 分页
            if (_Rows > 0 && _Page > 0)
            {
                if (string.IsNullOrEmpty(_From))
                    _From = _TableName;


                if (string.IsNullOrEmpty(_Where))
                    _Where = " 1=1 ";


                if (string.IsNullOrEmpty(_OrderBy))
                    _OrderBy="ID DESC";


                // 分页
                sql = string.Format(SELECT_PAGE_SQL, _Rows, _OrderBy, _Columns, _From, _Where, (_Page - 1) * _Rows);
            }
            else
            {
                if (string.IsNullOrEmpty(_From))
                    _From = _TableName;


                if (string.IsNullOrEmpty(_Where))
                    _Where = " 1=1 ";


                if (!string.IsNullOrEmpty(_OrderBy))
                    _Where += " Order By " + _OrderBy;


                sql = string.Format(SELECT_SQL, _Columns, _From, _Where);
            }
            return _DbHelper.Query<T>(sql, _Parameter == null ? _Parameters : _Parameter);
        }


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值