我們在做程式開發的時候有時候會經常要用到gridview、datalist等控制項,當然gridview它本身就帶有分頁的功能,可是datalist的分頁就沒有提供,我們就不得不用**or儲存過程來實現,然而當顯示的資料量非常大的時候也有必要用到儲存過程對其進行分頁顯示,下面是實現分頁的一種方法:
以products表進行示例:
procedure
[procname
]@pageindex
int,
--第n頁
@pagesize
int--
每頁的記錄條數
)
asbegin
declare
@sql
nvarchar
(4000
)set@sql='
select * from products
'exec
p_splitpage
@sql
, @pageindex
,@pagesize,0
--呼叫分頁的儲存過程
end
執行 exec procname 1,5 就可以返回第一頁的五條記錄,可要注意的時,它返回了兩個表,第乙個為空,第二個才是查詢出來的資料,對此我也不知道如何更正,所以繫結返回來的dataset時候需要繫結第二個表的類容,如:datalist1.datasource = dataset.tables[1];
下面是實現分頁的儲存過程:
procedure
[p_splitpage
]@sql
nvarchar
(4000
),
--要執行的sql語句
@currentpage
int,
--要顯示的頁碼
@pagesize
int,
--每頁的大小
@pagecount
intout
--總頁數
asbegin
setnocount
ondeclare
@p1int
exec
sp_cursoropen
@p1output,
@sql
,@scrollopt=1
,@ccopt=1
,@rowcount
=@pagecount
output
select
@pagecount
=ceiling
(1.0
*@pagecount
/@pagesize
),@currentpage=(
@currentpage-1
)*@pagesize+1
exec
sp_cursorfetch
@p1,16,
@currentpage
,@pagesize
exec
sp_cursorclose
@p1setnocount
onend
本**可供參考,如果對**有什麼意見或覺得有什麼不足請提出來感激不盡!
儲存過程實現分頁
一 create procedure dbo basic pagination2000 tblname varchar 255 表名 fidlelist varchar 2000 要查詢字段 fldname varchar 255 排序字段 pagesize int,頁尺寸 pageindex in...
儲存過程實現分頁
一 create procedure dbo basic pagination2000 tblname varchar 255 表名 fidlelist varchar 2000 要查詢字段 fldname varchar 255 排序字段 pagesize int,頁尺寸 pageindex in...
分頁儲存過程 分頁儲存過程
分頁儲存過程 alter proc dbo p pageshow pagesize int,每頁大小 currentpage int out,當前頁 housename nvarchar 50 房產名稱 totalcount int out,總記錄數 totalpage int out 總頁數 as...