如何实现百万条数据的分页?有什么好的解决办法呢?请高人指点
解决方案 »
- Asp.net MVC 解决了什么问题?有什么好处!
- Gridview能完成每页汇总,并显示在每一页的页脚中,如何把所有页的数据汇总,并显示到最后一页的页脚中?
- Web程序调用超时,直接查询分析器执行只用几秒
- Sql储存过程怎么会出错!!在线等.....
- SetAuthCookie忘高手指点!!!
- 我用VS2005为什么WebForm界面时,不能随意的拖动控件位置,但在VS2003中可以呢?
- 向大家推荐一个免费的ASP.NET空间,10M学习用也足够了。
- 请问,在ASP.NET中怎么定义一个窗体类,跟C#中一样,在我需要的时候就把它弹出,关闭后,还能用它的属性?
- asp.net 动态生成控件后删除问题
- 这个页是怎么做的,给点提示
- IIS里的两个会话超时设置,到底哪个起作用?马勒戈壁的。
- UrlRewriter再加入http跳转到https的功能
--参数说明
-------------------------------------------------------------
/*
@pageSize 每页显示的数量
@pageIndex ǰ当前显示第几页
@where 查询条件
@sortField 排序字段
*/
CREATE PROCEDURE [dbo].[SelectByPagerParams]
@pageSize int = 10,
@pageIndex int = 1,
@where varchar(8000) = ' 1=1 ',
@sortField varchar(100) = ' [Id] DESC '
AS
SET NOCOUNT ON
declare @filter varchar(8000)
set @filter = '
SELECT TOP ' + CONVERT(VARCHAR(8),@pageSize) + '
*
FROM [dbo].[Table]
where [Id] not in (SELECT TOP ' + CONVERT(VARCHAR(8),@pageSize * (@pageIndex - 1))
+ ' [Id] FROM [dbo].[Table]
WHERE ' + @where + ' ORDER BY ' + @sortField + ' ) AND ' + @where + ' ORDER BY ' + @sortField
--print @filter
exec ( @filter )
RETURN @@ErrorGO
-- =============================================
CREATE PROCEDURE [dbo].[GetProductsOnCatalogPromotion]
(
@DescriptionLength int,
@PageNumber int,--页号
@ProductsPerPage int,--每页显示商品数
@HowManyProducts int output--输出商品总数
)AS
-- declare Table 建临时表 table
declare @Products Table
(
RowNumber int,
ProductID int,
Name Varchar(50),
Description Varchar(5000),
Price Money,
Image1FileName Varchar(50),
Image2FileName Varchar(50),
OnDepartmentPromotion bit,
OnCatalogPromotion bit
)
--填充临时表
insert into @Products
select ROW_NUMBER() over (order by Product.ProductID),ProductID,Name,
substring(Description,1,@DescriptionLength)+'...' as Description,Price,
Image1FileName, Image2FileName,OnDepartmentPromotion,OnCatalogPromotion
from Product
-- @HowManyProducts 总数 赋值
select @HowManyProducts=count(ProductID) From @Products
--分页
select ProductID,Name,Description,Price,
Image1FileName, Image2FileName,OnDepartmentPromotion,OnCatalogPromotion
from @Products
where RowNumber >(@PageNumber-1)*@ProductsPerPage
and RowNumber<=@PageNumber*@ProductsPerPage