Esempio n. 1
0
        /// <summary>
        /// 按数据库取得分页取得数据
        /// </summary>
        /// <param name="page">分页实体</param>
        /// <param name="columns">查询的列</param>
        /// <param name="tableSql">查询的表体</param>
        /// <param name="cond">查询的条件</param>
        /// <param name="DBName">数据库名称</param>
        /// <param name="totalRows">OUT->总数据行数</param>
        /// <returns>返回查询出来的数据以及输入总数据行数</returns>
        public static DataSet GetTableForPagination(Pagination page, string columns, string tableSql, string cond, DBConfigEnum DBName, out int totalRows)
        {
            int pageIndex = page.NowPage;
            int pageSize  = page.PageSize;

            totalRows = 0;
            if (string.IsNullOrWhiteSpace(page.Sort))
            {
                page.Sort     = DefaultSortStr;
                page.SortType = "";
            }
            else if (string.IsNullOrWhiteSpace(page.SortType))
            {
                page.SortType = " asc ";
            }
            if (string.IsNullOrWhiteSpace(columns) || string.IsNullOrWhiteSpace(tableSql))
            {
                throw new Exception("传入的列名与表名均不能为空");
            }
            string  sql      = $@"select * from (
	select ROW_NUMBER() OVER(order by {page.Sort} {page.SortType} ) rowid,{columns} from {tableSql} where 1=1 {cond}
) t where 1=1 and rowid between {((pageIndex - 1) * pageSize) + 1} and {pageIndex * pageSize}";
            string  countSql = $@"select Count(1) counts from (
	select {columns} from {tableSql} where 1=1 {cond}
) t ";
            DataSet ds       = ExecuteSql(sql, DBName);

            using (var conn = new DBConfig().InitConn(DBName.ToString())) {
                totalRows = conn.ExecuteScalar <int>(countSql);
            }
            return(ds);
        }
Esempio n. 2
0
        /// <summary>
        /// 按数据库名称并根据传入的参数进行查询
        /// </summary>
        /// <param name="columns">查询的列名</param>
        /// <param name="tableSql">查询的表体</param>
        /// <param name="cond">条件,以and|or连接字开始</param>
        /// <param name="sort">排序字段</param>
        /// <param name="DBName">数据库名称</param>
        /// <param name="rowCount">查询结果的行数</param>
        /// <returns>返回一个DataSet并带出查询的行数</returns>
        public static DataSet GetTable(string columns, string tableSql, string cond, string sort, DBConfigEnum DBName, out int rowCount)
        {
            if (string.IsNullOrWhiteSpace(sort))
            {
                sort = DefaultSortStr;
            }
            if (string.IsNullOrWhiteSpace(columns) || string.IsNullOrWhiteSpace(tableSql) || string.IsNullOrWhiteSpace(sort))
            {
                throw new Exception("空值的参数设定");
            }
            string  sql      = $@"select * from ( 
	select ROW_NUMBER() over( order by {sort}) rowid, {columns} from {tableSql}
	where 1=1 {cond}
) t ";
            string  countSql = $@"select Count(1) from ( 
	select ROW_NUMBER() over( order by {sort}) rowid, {columns} from {tableSql}
	where 1=1 {cond}
) t ";
            DataSet ds       = new DataSet();

            ds = ExecuteSql(sql, DBName);
            using (var conn = new DBConfig().InitConn(DBName.ToString())) {
                rowCount = conn.ExecuteScalar <int>(countSql);
            }
            return(ds);
        }