测试:15万条数据,用时1s.--=====调用示例==== declare @str varchar(200); set @str = 'select * from t_user order by id' exec pagination @str,4,2--=====存储过程====== create procedure pagination @sqlstr nvarchar(4000), --查询字符串 @currentpage int, --第N页 @pagesize int --每页行数 as set nocount on declare @P1 int, --P1是游标的id @rowcount int exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
declare @totalPage int --总页数 set @totalpage = ceiling(1.0*@rowcount/@pagesize)
--判断当前页是否大于总页数,如果大于总页数.当前页就是最后一页 if (@currentpage>=@totalpage) set @currentpage = @totalpage if(@currentpage<1) --如果当前页小于1,则默认当前页是1 set @currentpage=1 print '当前页' print @currentpage select @totalpage as 总页数,@currentpage as 当前页 ,@rowcount as 总记录数--,@rowcount as 总行数,@currentpage as 当前页
declare @begin int --从哪条记录开始的 set @begin = (@currentpage-1)*@pagesize+1 exec sp_cursorfetch @P1,16,@begin,@pagesize exec sp_cursorclose @P1 set nocount off
datapager控件
分页存储过程
2.GridView自带分页
以上两种一般适应小数据量3.数据源控件ObjectDataSource,其中四个属性:
EnablePaging
MaximumRowsParameterName
SelectCountMethod
StartRowIndexParameterName
这四个属性对应后台代码,可实现真正分页4.分页存储过程,可实现真正分页,但就不是什么控件了!!
只查询当前页 具体资料上谷歌百度下
不过很多高手都是自己写的控件。
我建议你用Repeater
declare @str varchar(200);
set @str = 'select * from t_user order by id'
exec pagination @str,4,2--=====存储过程======
create procedure pagination
@sqlstr nvarchar(4000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
declare @totalPage int --总页数
set @totalpage = ceiling(1.0*@rowcount/@pagesize)
--判断当前页是否大于总页数,如果大于总页数.当前页就是最后一页
if (@currentpage>=@totalpage)
set @currentpage = @totalpage
if(@currentpage<1) --如果当前页小于1,则默认当前页是1
set @currentpage=1 print '当前页'
print @currentpage select @totalpage as 总页数,@currentpage as 当前页 ,@rowcount as 总记录数--,@rowcount as 总行数,@currentpage as 当前页
declare @begin int --从哪条记录开始的
set @begin = (@currentpage-1)*@pagesize+1 exec sp_cursorfetch @P1,16,@begin,@pagesize
exec sp_cursorclose @P1
set nocount off