怎样实现记录分页?

smalllove 2003-07-18 03:35:33
在sql数据库中,一个表中有n条记录,我想在n条记录中取从第100条到120条的记录,或我想取后面的100条记录。
就好象在网上我们想查看第五页,只需在文本框中输入5后点击确定就调到第5页的页面并显示该页面的数据。
这应该怎样做了?
用vb实现!
谢谢!
...全文
17 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pingfzp 2003-07-20
  • 打赏
  • 举报
回复
如果你的程序是多用户的话,最好还是用ADO的分页功能实现,否则,会出错
pas 2003-07-20
  • 打赏
  • 举报
回复
up leimin(黄山光明顶)
erigido 2003-07-20
  • 打赏
  • 举报
回复
同意
leimin 2003-07-19
  • 打赏
  • 举报
回复
试试我的SP

CREATE PROCEDURE GetProductsPaged
@lastProductID int,
@pageSize int
AS
SET ROWCOUNT @pageSize
SELECT *
FROM Products
WHERE [standard search criteria]
AND ProductID > @lastProductID
ORDER BY [Criteria that leaves ProductID monotonically increasing]
GO
fmdsaco 2003-07-18
  • 打赏
  • 举报
回复
把此贴收起来先
tonton98 2003-07-18
  • 打赏
  • 举报
回复
declare @ydx int,@ym int--为传进的参数,@ydx设定一页要显示的记录数,@ym为第几页

select @ydx=20 ,@ym=0

declare @SQLStr varchar(8000)
set @SQLStr='SELECT Top '+cast(@ydx as varchar)+' * FROM 表 WHERE 主键列 NOT IN (SELECT TOP '+cast(@ydx*@ym as varchar)+' 主键列 from 表 )'
exec(@SQLStr)
pengdali 2003-07-18
  • 打赏
  • 举报
回复
select IDENTITY(int, 1,1) AS ID_Num,* into #temp from 表
select * from #temp where ID_Num between 10 and 20

或如果有主键:

declare @SQLStr varchar(8000)
set @SQLStr='SELECT Top '+cast(@每页大小 as varchar)+' * FROM 表 WHERE 主键列 NOT IN (SELECT TOP '+cast(@每页大小*@第几页 as varchar)+' 主键列 from 表 )'
exec(@SQLStr)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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