コード例 #1
0
ファイル: SqlHelper.cs プロジェクト: delaywu/ShopMall
        /// <summary>
        /// 异步获取分页数据(自定义sql语句)
        /// </summary>
        /// <typeparam name="TReturn">结果集数据类型/实体</typeparam>
        /// <param name="conn">数据库连接</param>
        /// <param name="pageIndex">分页索引</param>
        /// <param name="pageSize">分页大小</param>
        /// <param name="selectSql">查询语句</param>
        /// <param name="parms">参数</param>
        /// <param name="countSql">统计记录数语句,不传则自动根据查询语句生成</param>
        /// <returns></returns>
        public static async Task <PagerData <TReturn> > GetPagerDataAsync <TReturn>(this IDbConnection conn, int pageIndex, int pageSize, string selectSql, object parms = null, string countSql = null)
        {
            PagerData <TReturn> res = new PagerData <TReturn>(pageIndex, pageSize);

            if (string.IsNullOrEmpty(countSql))
            {
                countSql = GetCountSql(selectSql);
            }
            res.RecordCount = await conn.ExecuteScalarAsync <int>(countSql, parms);

            if (res.RecordCount > 0)
            {
                if (pageIndex > res.PageCount)
                {
                    pageIndex     = res.PageCount;
                    res.PageIndex = res.PageCount;
                }
                string strPagerSql = GetPagingSql(res.PageIndex, res.PageSize, selectSql);
                try
                {
                    res.Data = await conn.QueryAsync <TReturn>(strPagerSql, parms);
                }
                catch (Exception ex)
                {
                    throw;
                }
            }
            else
            {
                pageIndex     = 1;
                res.PageIndex = 1;
                res.Data      = new List <TReturn>();
            }
            return(res);
        }
コード例 #2
0
ファイル: SqlHelper.cs プロジェクト: delaywu/ShopMall
        /// <summary>
        /// 获取分页数据(自定义sql语句)
        /// </summary>
        /// <typeparam name="TReturn">结果集数据类型/实体</typeparam>
        /// <param name="conn">数据库连接</param>
        /// <param name="pageIndex">分页索引</param>
        /// <param name="pageSize">分页大小</param>
        /// <param name="selectSql">查询语句</param>
        /// <param name="parms">参数</param>
        /// <param name="countSql">统计记录数语句,不传则自动根据查询语句生成</param>
        /// <returns></returns>
        public static PagerData <TReturn> GetPagerData <TReturn>(this IDbConnection conn, int pageIndex, int pageSize, string selectSql, object parms = null, string countSql = null)
        {
            PagerData <TReturn> res = new PagerData <TReturn>(pageIndex, pageSize);

            if (string.IsNullOrEmpty(countSql))
            {
                countSql = GetCountSql(selectSql);
            }
            res.RecordCount = conn.ExecuteScalar <int>(countSql, parms);
            if (res.RecordCount > 0)
            {
                if (pageIndex > res.PageCount)
                {
                    pageIndex     = res.PageCount;
                    res.PageIndex = res.PageCount;
                }
                string strPagerSql = GetPagingSql(res.PageIndex, res.PageSize, selectSql);
                res.Data = conn.Query <TReturn>(strPagerSql, parms);
            }
            else
            {
                pageIndex     = 1;
                res.PageIndex = 1;
                res.Data      = new List <TReturn>();
            }
            return(res);
        }