
已解决问题
谷歌LY莫名其妙用户在提交了关于“李湘gridview如何实现分页功能.”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-22T20:25:39。希望大家能够帮助她。详细问题描述及疑问:期待您的答案,真心佩服你,谢谢 !
详细问题描述及疑问:期待您的答案,真心佩服你,谢谢 !
方法一
**LECTDISTINCTTOP8Cat
FROMtbl_
Wh**ERE(UserID=
(**LECTMAX(categoryid)
FROM(
FROMtbl_pro**ct_
ORDERBYcate
OR
--方法二
selecttop10*from[
whereorderid>all(s
or
下面的来自CSDN------------------
SQLServer存储过程的分页,这个问题已经讨论
建立表:
CREATETA
[ID][int]IDENTITY(1,1)NOT**LL,
[FirstName][nv
[La
[Cou
[Note][nvarch
)ON[PRIMARY]
GO
插
**TIDENTITY_IN**RTTestTa
declare@iint
se
while@i<=
begin
insertintoTestTable([id],FirstName,LastName,Country,Note)values(@i,'FirstName_XXX','LastName_X
set@i=@i+1
end
S
----------------------
分
语句形式:
FROMTestTable
Wh**ERE(IDNOTIN
(**LECTTOP20id
FROMTestTable
ORDERBYid))
ORDERBYID
**LECTTOP页大小*
FROMTestTable
Wh**ERE(IDNOTIN
(**LECTTOP页大小*页数id
FROM表
ORDERBYid))
ORDERBYID
-------------------------------------
分页方案二:(利用ID大于多少和**LECTTOP分页)
语句形式:
**LECTTOP10*
FROMTestTable
Wh**ERE(ID>
(**LECTMAX(id)
FROM(**LECTTOP20id
FROMTestTable
ORDERBYid)AST))
ORDERBYID
**LECTTOP页大小*
FROMTestTable
Wh**ERE(ID>
(**LECTMAX(id)
FROM(**LECTTOP页大小*页数id
FROM表
ORDERBYid)AST))
ORDERBYID
-------------------------------------
分页方案三:(利用SQL的游标存储过程分页)
createproce**reXiaoZhengGe
@sqlstrnvarchar(4000),--查询字符串
@currentpageint,--第N页
@pagesizeint--每页行数
as
setnocounton
declare@P1int,--P1是游标的id
@rowcountint
execsp_cursoropen@P1output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcountoutput
selectceiling(1.0*@rowcount/@pagesize)as总页数--,@rowcountas总行数,@currentpageas当前页
set@currentpage=(@currentpage-1)*@pagesize+1
execsp_cursorfetch@P1,16,@currentpage,@pagesize
execsp_cursorclose@P1
setnocountoff
其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
建议优化的时候,加上主键和索引,查询效率会提高。
通过SQL查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和**LECTTOP分页)效率最脯需要拼接SQL语句
分页方案一:(利用NotIn和**LECTTOP分页)效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页)效率最差,但是最为通用
在实际情况中,要具体分析。