公司學習 通用資料庫儲存過程分頁

2021-06-28 21:34:37 字數 2925 閱讀 8295

create procedure [dbo].[username]

@pageindex int,

@pagesize int as

declare @min int;

declare @max int;

set @min=@pagesize*(@pageindex-1)+1;

set @max=@pagesize*@pageindex;

with mytable as(select id,name,age,row_number() over (order by id) as rownum from [username] )

select id,name,age from mytable where rownum between @min and @max

return 萬用

create procedure [dbo].[up_getrecordbypage]

@tblname varchar(255), -- 表名

@fldname varchar(255), -- 主鍵欄位名

@pagesize int , -- 頁尺寸

@pageindex int , -- 頁碼

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

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

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

asdeclare @strsql varchar(6000) -- 主語句

declare @strtmp varchar(2000) -- 臨時變數(查詢條件過長時可能會出錯,可修改100為1000)

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

if @ordertype != 0

begin

set @strtmp = '<(select min'

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

endelse

begin

set @strtmp = '>(select max'

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

endset @strsql = 'select top ' + str(@pagesize) + ' * 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) + ' * from ['

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

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

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

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

if @pageindex <> 0

begin

set @strtmp =''

if @strwhere != ''

set @strtmp = ' where ' + @strwhere

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

+ @tblname + ']' + @strtmp + ' ' + @strorder

exec (@strsql)

endif @isrecount != 0

begin

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

exec (@strsql)

end後台

public dataset getlist(int pagesize, int pageindex, string strwhere, string fields)

;parameters[0].value = "users";

parameters[1].value = fields;

parameters[2].value = "createtime";

parameters[3].value = pagesize;

parameters[4].value = pageindex;

parameters[5].value = 1;

parameters[6].value = 1;

parameters[7].value = strwhere;

dataset ds = dbhelpersql.runprocedure("up_getrecordwithcustomorder", parameters, "ds");

return ds;

}public static dataset runprocedure(string storedprocname, idataparameter parameters, string tablename)

}

通用儲存過程 分頁儲存過程

名稱 spall returnrows 輸入 輸出 呼叫 exec spall returnrows select from 表名 頁號,返回記錄數,主鍵 排序字段 spall returnrows select from all categories 2,10,id id 說明 百萬級 通用儲存過...

通用分頁儲存過程

create procedure sp page strtable varchar 50 表名 strcolumn varchar 50 按該列來進行分頁 intcoltype int,strcolumn列的型別,0 數字型別,1 字元型別,2 日期時間型別 intorder bit,排序,0 順序...

通用分頁儲存過程

set quoted identifier on goset ansi nulls off go declare p1 int set p1 null exec sp pageview tbname n v question list fieldkey n id pagecurrent 3,page...