GridView 分頁儲存過程

2021-09-05 16:15:55 字數 2586 閱讀 9211

儲存過程中的引數可以只有2個:第幾頁和每頁的行數

總行數的可以使用簡單的select count(1) from tablename來完成,總頁就是總行數/每頁的行數。

把這幾個算出來的數填充到gridview相應的屬性中。當點第幾頁的時候,再呼叫分頁儲存過程來重新整理資料,就可以了。

群主(87273411) 09:34:52

create procedure sp_conn_sort

(@tblname   varchar(255),       -- 表名

@strgetfields varchar(1000) = '*',  -- 需要返回的列

@fldname varchar(255)='',      -- 排序的欄位名

@pagesize   int = 40,          -- 頁尺寸

@pageindex  int = 1,           -- 頁碼

@docount  bit = 0,   -- 返回記錄總數, 非 0 值則返回

@ordertype bit = 0,  -- 設定排序型別, 非 0 值則降序

@strwhere  varchar(1500)=''  -- 查詢條件 (注意: 不要加 where))as

declare @strsql   varchar(5000)       -- 主語句

declare @strtmp   varchar(110)        -- 臨時變數

declare @strorder varchar(400)        -- 排序型別

if @docount != 0

begin

if @strwhere !=''

set @strsql = 'select count(*) as total from ' + @tblname + ' where '+@strwhere

else

set @strsql = 'select count(*) as total from ' + @tblname

end 

--以上**的意思是如果@docount傳遞過來的不是0,就執行總數統計。以下的所有**都是@docount為0的情況

else

begin

if @ordertype != 0

begin

set @strtmp = '<(select min'

set @strorder = ' order by ' + @fldname +' desc'

--如果@ordertype不是0,就執行降序,這句很重要!

endelse

begin

set @strtmp = '>(select max'

set @strorder = ' order by ' + @fldname +' asc'

endif @pageindex = 1

begin

if @strwhere != ''  

set @strsql = 'select top ' + str(@pagesize) +' '+@strgetfields+ '  from ' + @tblname + ' where ' + @strwhere + ' ' + @strorder

else

set @strsql = 'select top ' + str(@pagesize) +' '+@strgetfields+ '  from '+ @tblname + ' '+ @strorder

--如果是第一頁就執行以上**,這樣會加快執行速度

endelse

begin

--以下**賦予了@strsql以真正執行的sql**

set @strsql = 'select top ' + str(@pagesize) +' '+@strgetfields+ '  from '

+ @tblname + ' where ' + @fldname + '' + @strtmp + '('+ @fldname + ') from (select top ' + str((@pageindex-1)*@pagesize) + ' '+ @fldname + ' from ' + @tblname + '' + @strorder + ') as tbltmp)'+ @strorder

if @strwhere != ''

set @strsql = 'select top ' + str(@pagesize) +' '+@strgetfields+ '  from '

+ @tblname + ' where ' + @fldname + '' + @strtmp + '('

+ @fldname + ') from (select top ' + str((@pageindex-1)*@pagesize) + ' '

+ @fldname + ' from ' + @tblname + ' where ' + @strwhere + ' '

+ @strorder + ') as tbltmp) and ' + @strwhere + ' ' + @strorder

end

end  

exec (@strsql)

群主(87273411) 09:35:07

GridView的定義儲存過程分頁和全選刪除

今天學習了gridview 的全選,刪除,定義儲存過程分頁 下面是我的作業 定義儲存過程分頁 using system using system.collections.generic using system.linq using system.web using system.web.ui us...

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

分頁儲存過程 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...