实现分页的存储过程
2008-03-29 16:14
162 查看
我们在做程序开发的时候有时候会经常要用到GridView、DataList等控件,当然GridView它本身就带有分页的功能,可是DataList的分页就没有提供,我们就不得不用代码OR存储过程来实现,然而当显示的数据量非常大的时候也有必要用到存储过程对其进行分页显示,下面是实现分页的一种方法:
以Products表进行示例:
CREATE PROCEDURE [ProcName]
(
@PageIndex INT, -- 第N页
@PageSize INT --每页的记录条数
)
AS
BEGIN
DECLARE @Sql NVARCHAR(4000)
SET @Sql='SELECT * FROM Products'
EXEC p_splitpage @sql, @PageIndex ,@PageSize,0 --调用分页的存储过程
END
执行 EXEC ProcName 1,5 就可以返回第一页的五条记录,可要注意的时,它返回了两个表,第一个为空,第二个才是查询出来的数据,对此我也不知道如何更正,所以绑定返回来的DataSet时候需要绑定第二个表的类容,如:Datalist1.DataSource = dataset.Tables[1];
下面是实现分页的存储过程:
CREATE PROCEDURE [p_splitpage]
@sql NVARCHAR(4000), --要执行的sql语句
@currentpage INT , --要显示的页码
@pagesize INT , --每页的大小
@pagecount INT OUT --总页数
AS
BEGIN
SET NOCOUNT ON
declare @p1 int
EXEC sp_cursoropen @p1 OUTPUT,@sql,@scrollopt=1,@ccopt=1,@rowcount=@pagecount OUTPUT
SELECT @pagecount=CEILING(1.0*@pagecount/@pagesize),@currentpage=(@currentpage-1)*@pagesize+1
EXEC sp_cursorfetch @p1,16,@currentpage,@pagesize
EXEC sp_cursorclose @p1
SET NOCOUNT ON
END
本代码可供参考,如果对代码有什么意见或觉得有什么不足请提出来感激不尽!
以Products表进行示例:
CREATE PROCEDURE [ProcName]
(
@PageIndex INT, -- 第N页
@PageSize INT --每页的记录条数
)
AS
BEGIN
DECLARE @Sql NVARCHAR(4000)
SET @Sql='SELECT * FROM Products'
EXEC p_splitpage @sql, @PageIndex ,@PageSize,0 --调用分页的存储过程
END
执行 EXEC ProcName 1,5 就可以返回第一页的五条记录,可要注意的时,它返回了两个表,第一个为空,第二个才是查询出来的数据,对此我也不知道如何更正,所以绑定返回来的DataSet时候需要绑定第二个表的类容,如:Datalist1.DataSource = dataset.Tables[1];
下面是实现分页的存储过程:
CREATE PROCEDURE [p_splitpage]
@sql NVARCHAR(4000), --要执行的sql语句
@currentpage INT , --要显示的页码
@pagesize INT , --每页的大小
@pagecount INT OUT --总页数
AS
BEGIN
SET NOCOUNT ON
declare @p1 int
EXEC sp_cursoropen @p1 OUTPUT,@sql,@scrollopt=1,@ccopt=1,@rowcount=@pagecount OUTPUT
SELECT @pagecount=CEILING(1.0*@pagecount/@pagesize),@currentpage=(@currentpage-1)*@pagesize+1
EXEC sp_cursorfetch @p1,16,@currentpage,@pagesize
EXEC sp_cursorclose @p1
SET NOCOUNT ON
END
本代码可供参考,如果对代码有什么意见或觉得有什么不足请提出来感激不尽!
相关文章推荐
- 一个利用sql 语句来实现分页的存储过程
- 实现千万级数据分页的存储过程!
- 实现千万级数据的分页的通用存储过程
- 一个简单的oracle分页存储过程的实现和调用
- 使用vs2005的rowNumber对数据实现分页的存储过程。
- 利用存储过程实现分页 ,并且多条件查询
- SQL 临时表缓存实现的通用分页存储过程
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- MVC中用Jquery、JS和Ajax 实现分页 存储过程是用mysql写的。
- 不用存储过程的分页实现
- SQL分页存储过程的实现
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- 【转】实现千万级数据分页的存储过程!
- 实现千万级数据分页的存储过程!
- sybase分页存储过程的实现
- 实现分页的通用存储过程
- 一个通用的分页存储过程实现-SqlServer(附上sql源码,一键执行即刻搭建运行环境)
- TOP n 实现的通用分页存储过程.sql
- 临时表缓存实现的通用分页存储过程.sql