gridview如何实现分页功能.

时间: 发布人:LY莫名其妙

gridview如何实现分页功能.

已解决问题

谷歌LY莫名其妙用户在提交了关于“李湘gridview如何实现分页功能.”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-22T20:25:39。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,真心佩服你,谢谢 !

希望以下的回答,能够帮助你。

第1个回答

用户名:寂寞女孩172  

方法一

**LECTDISTINCTTOP8CategoryID
FROMtbl_配互丝印动压Pro**ct_Pro**cts
Wh**ERE(UserID=粮慢际著新巴鸡73)AND(CategoryID>
(**LECTMAX(categoryid)
FROM(坚职怎且图语湖临术**LECTDISTINCTTOP16categoryid
FROMtbl_pro**ct_来自pro**ctswhereuserid=73
ORDERBYcate朝判铁逐即根激口讲goryid)ASb))
OR冷针神为DERBYCategoryID

--方法二

selecttop10*from[阻orderdetails]
whereorderid>all(selecttop10orderidfrom[orderdetails]orderbyorderid)
or官蛋值derbyorderid
下面的来自CSDN-------------------------------------
SQLServer存储过程的分页,这个问题已经讨论问答过几年了,很多朋友在问我,所以在此发表一下我的观点
建立表:

CREATETA倍积铁牛农标载之车BLE[TestTable](
[ID][int]IDENTITY(1,1)NOT**LL,
[FirstName][nvarchar](100)COLLATEChin棉走于初真织ese_PRC_CI_很决晚业AS**LL,
[La准鲜游节名stName][nvarchar](100)COLLATEChinese_PRC_CI_ASNULL,
[Country][nvarchar](50)COLLATECh希跳盟示多良应校胡inese_PRC_CI_AS**LL,
[Note][nvarchar](2000)COLLATEChinese_PRC_CI_AS**LL
)ON[PRIMARY]
GO

行实入**:(2万条,用更多的**测试会明显一些)
**TIDENTITY_IN**RTTestTableON

declare@iint
set@i=1
while@i<=20000
begin
insertintoTestTable([id],FirstName,LastName,Country,Note)values(@i,'FirstName_XXX','LastName_X希强宪践宜波找XX','Country_XXX','Note_XXX')
set@i=@i+1
end

S拉书ETIDENTITY_IN**术副作格是RTTestTableOFF

-------------------------------------

坏脚页方案一:(利用NotIn和**LECTTOP分页)
语句形式:
速命**LECTTOP10*
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的游标存储过程分页)效率最差,但是最为通用

在实际情况中,要具体分析。