实现分页的存储过程
来源:互联网 发布:文档版本控制软件 编辑:程序博客网 时间:2024/05/16 11:26
我们在做程序开发的时候有时候会经常要用到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
(
@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 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
本代码可供参考,如果对代码有什么意见或觉得有什么不足请提出来感激不尽!
- 实现分页的存储过程
- 存储过程实现分页
- 存储过程实现分页
- 存储过程实现分页
- 存储过程实现分页
- 使用系统存储过程实现的通用分页存储过程
- 使用系统存储过程实现的通用分页存储过程
- 存储过程实现分页的程序
- 实现分页的通用存储过程
- 用存储过程实现的分页程序
- 关于存储过程实现分页的技术
- 用存储过程实现的分页程序
- 实现分页的通用存储过程
- 用存储过程实现的分页程序
- 用存储过程实现的分页程序
- SQLServer 实现分页的通用存储过程
- 实现的通用分页存储过程
- 实现分页的通用存储过程
- SQL Server各种日期计算方法
- 使用Drwtsn32和NTSD进行崩溃进程转储
- 求职的思考–我们应该展示什么_2008校园招聘网_实习与笔试面试经验_UNUS.CN
- Delphi中的Access技巧集
- 计算机网络的分类
- 实现分页的存储过程
- delphi 7中的快捷键
- 世界500强企业名称中英对照
- 转载非常不错的页面制作方法
- C# 的ToString() 参数详解
- javascript获取select的当前值
- 项目开发中常用JS表单取值方法
- Vega Prime 桌面教程(四)
- VB WMI 对象的示例代码