数据库分页

leftearheard 2010-12-20 07:29:12

declare @PageSize int,@PageIndex int,@tmpSql nvarchar(2048)
select @PageSize=10,@PageIndex=3
set @tmpSql='select top '+cast(@PageSize as nvarchar(20))+'* from tbl_表名
where d_id>(select max(d_id) from (
select top '+convert(nvarchar(20),(@pagesize-1)*@pagesize)+'d_id from tbl_表名 order by d_id
)as t
order by d_id'
print(@tmpSql)
declare @BeginTime datetime,@EndTime datetime
set @BeginTime=getdate()
print('Begin Time:'+cast(@BeginTime as nvarchar(20)))
EXEC(@tmpSql)
set @EndTime=getdate()
print('End Time:'+cast(@EndTime as nvarchar(20)))
print('Use Time;'+cast(datediff(ms,@BeginTime,@EndTime) as nvarchar(20)))

我想问一下,就是当那个@PageIndex=1的时候就显示不出来,就是第一页显示不出来,其它时候都显示的出来
请帮忙解决一下,谢谢!!

...全文
63 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yadoufeng 2011-03-12
  • 打赏
  • 举报
回复

create proc proc_pagination   --创建分页存储过程   
@page int = 1, -- 页数
@pagesize int = 10, -- 每页的大小
@tableName varchar(100), -- 要查询的表名
@orderFields varchar(255), -- 排序的字段名(一定要)
@GetFields varchar(1000) = '*', -- 需要返回的列
@sqlWhere varchar(1500) = '', -- 查询条件(注意: 不要加where,但要加and)
@OrderType varchar(4) = 'desc', -- 设置排序类型
@totalrow int output, --查询出多少条数据(输出参数)
@totalpage int output --总有多少页(输出参数)
as
declare @sql varchar(2000),@sumRowSql nvarchar(2000),@ParmDefinition nvarchar(200);

set @sumRowSql = N'select @totalRow = count(1) from ' + @tableName + ' where 1 = 1 '+@sqlWhere; --查询的SQL语句
set @ParmDefinition = N'@totalRow int output'; --定义查询SQL语句的参数类型
leftearheard 2010-12-22
  • 打赏
  • 举报
回复
我用上去了,但是不行的
wuyq11 2010-12-20
  • 打赏
  • 举报
回复
print(@tmpSql)
看看SQL语句
if @page = 1
set @intCounts = @pageSize
else
begin
set @intCounts = (@page-1) * @pageSize + 1
end

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧