我所常用的分页

如下:

        public List<Product> GetSavedProductsByUserId(int userId, int pageNumber, int pageSize)
        {
            var sql = @"
WITH tempGR AS
(                                         
    SELECT ROW_NUMBER() over( order by a.Id desc) as ReqIndex ,COUNT(a.Id) OVER() as ReqCount ,
    B.*, C.*
    FROM dbo.StoredProducts A
    LEFT JOIN Product B ON A.ProductId=B.Id
    LEFT JOIN ProductBase C ON B.BaseId=C.PBaseId
    WHERE A.UserId=@userId
)
SELECT * FROM TEMPGR WHERE ReqIndex BETWEEN @StartIndex and @EndIndex
";
            var pms = new SqlParameter[] {
                new SqlParameter("@UserId",userId),
                new SqlParameter("@StartIndex",(pageNumber - 1) * pageSize + 1),
                new SqlParameter("@EndIndex", pageNumber * pageSize)
            };
            var x = SqlHelper.ExecuteDataset(CommandType.Text, sql, pms);
            var re = DataTableHelper.ToList3<Product>(x.Tables[0]);
            return re;
        }

posted @   陆敏技  阅读(334)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
历史上的今天:
2011-09-08 ASP.NET性能优化之构建自定义文件缓存
Web Counter
Coupon for Contacts
点击右上角即可分享
微信分享提示