create procedure listpage
@tblname varchar(50), /* 表名 */
@fldname varchar(50), /* 欄位名 */
@fldsort varchar(50), /* 排序欄位名 */
@pagesize int = 10, /* 頁尺寸 */
@pageindex int = 1, /* 頁碼 */
@iscount bit = 0, /* 返回記錄總數, 非 0 值則返回 */
@ordertype bit = 0, /* 設定排序型別, 非 0 值則降序 */
@strwhere varchar(1000) = '' /* 查詢條件 (注意: 不要加 where) */
as begin
declare @strsql varchar(1000) /* 主語句 */
declare @strtmp varchar(300) /* 臨時變數 */
declare @strorder varchar(400) /* 排序型別 */
if @ordertype != 0
begin
set @strtmp = '<(select min'
set @strorder = ' order by [' + @fldsort +'] desc'
end
else
begin
set @strtmp = '>(select max'
set @strorder = ' order by [' + @fldsort +'] asc'
end
set @strsql = 'select top ' + str(@pagesize) + ' ' + @fldname + ' from ['
+ @tblname + '] where [' + @fldsort + ']' + @strtmp + '(['
+ @fldsort + ']) from (select top ' + str((@pageindex-1)*@pagesize) + ' ['
+ @fldsort + '] from [' + @tblname + ']' + @strorder + ') as tbltmp)'
+ @strorder
if @strwhere != ''
set @strsql = 'select top ' + str(@pagesize) + ' ' + @fldname + ' from ['
+ @tblname + '] where [' + @fldsort + ']' + @strtmp + '(['
+ @fldsort + ']) from (select top ' + str((@pageindex-1)*@pagesize) + ' ['
+ @fldsort + '] from [' + @tblname + '] where (' + @strwhere + ') '
+ @strorder + ') as tbltmp) and (' + @strwhere + ') ' + @strorder
if @pageindex = 1
begin
set @strtmp = ''
if @strwhere != ''
set @strtmp = ' where (' + @strwhere + ')'
set @strsql = 'select top ' + str(@pagesize) + ' ' + @fldname + ' from ['
+ @tblname + ']' + @strtmp + ' ' + @strorder
end
if @iscount != 0
begin
set @strsql = 'select count(*) as total from [' + @tblname + ']'
if @strwhere != '' set @strsql = @strsql + ' where (' + @strwhere + ') '
end
exec (@strsql)
end
public datatable proclistpage(string tablename, string fldname, string fldsort, int pagesize, int pageindex, string strwhere, bool iscount, bool ordertype)
catch
}set ansi_nulls on
set quoted_identifier on
go
分頁儲存過程 分頁儲存過程
分頁儲存過程 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...