實現分頁的儲存過程

2021-06-16 00:45:02 字數 1610 閱讀 2811

我們在做程式開發的時候有時候會經常要用到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...