乙個分頁儲存過程

2021-04-20 03:17:47 字數 1975 閱讀 8078

--------louje 分頁儲存過程

create    procedure usp_page

(@pagesize int, ---頁大小

@pageno int,  --頁號

@tablename nvarchar(500),  --表名

@keyword nvarchar(20),  --主鍵

@fieldname  nvarchar(2000),  --要顯示的欄位名

@where  nvarchar(1500),  ---條件

@orderby  nvarchar(500)  --排序字段)as

declare @recordcount int

declare @pagecount int

declare @sql nvarchar(4000)

set @orderby = ' order by ' + @keyword + ' desc'

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

--總記錄數

set @sql='select @recordcount=count(1) from  [email=]'+@tablename+'[/email]  where '+ @where

print @sql

exec sp_executesql  @sql,n'@recordcount int output' ,@recordcount output

--總頁數

if @recordcount%@pagesize=0

set @pagecount=@recordcount/@pagesize

else

set @pagecount=@recordcount/@pagesize+1

---頁下限

if @pageno<1

set @pageno=1

---頁上限   

if @pageno>@pagecount  and @pagecount >0

set  @pageno=@pagecount

--最終結果

if @pageno<=1

begin

set @sql='select top '+cast(@pagesize as nvarchar(10))+'  '+ cast(@recordcount as nvarchar(10))+' as recordcount,'+@fieldname+' from [email=]'+@tablename+'[/email] where [email=]'+@where+@orderby[/email]

endelse

begin

set @sql='select top '+cast(@pagesize as nvarchar(10))+'  '+ cast(@recordcount as nvarchar(10))+' as recordcount,'+@fieldname+' from [email=]'+@tablename+'[/email] where [email=]'+@where[/email]

set @sql=@sql+' and  [email=]'+@keyword+'[/email] not in(select top '+cast(@pagesize*(@pageno-1) as nvarchar(10))+' [email=]'+@keyword+'[/email] from [email=]'+@tablename+'[/email] where  [email=]'+@where+@orderby+')'+@orderby[/email]

endprint @sql

exec(@sql)

return

go呼叫的時候這樣寫

public listgetrows(int pagesize,int pageno,string where out int recordcount)

}  return list;

}

乙個分頁儲存過程

page language c import namespace system.data import namespace system.data.sqlclient 訂單號 服務專案 預訂日期 操作人員 分配狀態 databinder.eval container.dataitem,offerid...

乙個分頁儲存過程

create procedure sp page tb varchar 50 表名 col varchar 50 按該列來進行分頁 coltype int,col 列的型別,0 數字型別,1 字元型別,2 日期時間型別 orderby bit,排序,0 順序,1 倒序 collist varchar...

乙個分頁的儲存過程

create procedure sp page tb varchar 50 表名 col varchar 50 按該列來進行分頁 coltype int,col 列的型別,0 數字型別,1 字元型別,2 日期時間型別 orderby bit,排序,0 順序,1 倒序 collist varchar...