儲存過程分頁 二

2021-09-06 14:08:48 字數 1931 閱讀 6800

create procedure dbo.create******

2(3 @pageindex int,

4 @pagesize int

5)6as

7begin

8 --定義三個變數:

9 -- @pagelowerbound :所取出記錄的下限.

10 -- @pageupperbound: 所要取出記錄的上限.

11 -- @totalrecords: 返回記錄總數,主要用於頁面的計算.

12 declare @pagelowerbound int

13 declare @pageupperbound int

14 declare @totalrecords int

1516 --計算上下限的值.

17 set @pagelowerbound=@pageindex * @pagesize

18 set @pageupperbound=@pagelowerbound+@pagesize-1

1920--建立臨時表:

21--indexid是標識,自動增長1;

22--******id由資料表[******]填充;

23 create table #pageindexfor******

24 (

25 indexid int identity(1,1) not null,

26 ******id int

27 )

28--填充臨時表

29 insert into #pageindexfor******(******id)

30 select s.[******id]

31 from [******] s

32 --這裡可以加where condition和oder by語句

33 34 --取得記錄總數,其實影響行數就是記錄總數

35 select @totalrecords=@@rowcount

3637 --獲取我們所要的記錄.

38 select s.*

39 from [******] s,#pageindexfor****** p

40 where s.[******id]=p.[******id]

41 and p.[indexid]>=@pagelowerbound

42 and p.[indexid]<=@pageupperbound

43 order by s.[******]

44 45 --返回記錄總數.

46 reture @totalrecords

47end

由上面的注釋就能看懂了,呵呵,既然寫到這裡也把程式的**寫出來:

1public listget******(int pageindex,int pageindex,out int totalrecords);

8 param[0].value=pageindex;

9 param[1].value=pagesize;

10 param[2].direction = parameterdirection.returnvalue;

11 sqldatareader reader=sqlhelper.executereader(commandtype.storedprocedure, "get******", param);

12 while(reader.read())

15 reader.close();

16 trycatch{}

19 return entity;

20}上面的一些函式是自己寫的:

sqlhelper類:簡化資料庫查詢類.

get******entity(sqldatareader reader):由於經常在專案中會用到好基礎實體類的獲取,所以單獨寫乙個私有函式,以便重用;

值得注意的是獲取總的記錄數時可能型別為dbnull而導致錯誤.

分頁儲存過程 分頁儲存過程

分頁儲存過程 alter proc dbo p pageshow pagesize int,每頁大小 currentpage int out,當前頁 housename nvarchar 50 房產名稱 totalcount int out,總記錄數 totalpage int out 總頁數 as...

分頁儲存過程

create proc p sobigo percentpage tblname varchar 255 t category 表名 strgetfields varchar 1000 需要返回的列 fldname varchar 255 排序的欄位名 pagesize int 10,頁尺寸 pag...

分頁儲存過程

create procedure pro select pageindex int,pagesize int as select student.sno,student.sname,student.s grade.math,grade.physics,grade.huaxue,grade.chine...