#region 返回所有職位物件 帶分頁
///
/// #region 返回所有職位物件帶分頁
///
/// 當前頁
/// 每頁顯示數
/// 返回 頁數
/// 返回總項數
/// 《物件集合》
public static listgetallmodel(int curpage, int size, ref int pagesize, ref int totalsize)}}
}catch (exception ex)
finally
}pagesize = (int)pagecount.value;
totalsize = (int)recordcount.value;
return postionmodellist;
}#endregion
測試: 排序項不能為空
declare @i int
declare @j int
exec sp_abitableload
'department.departmentname,positions.id,positions.positionname',
'department,positions',
' positions.departmentid = department.id ',
'positions.id',
2,5,
@i output,
@j output
select @i,@j
create proc [dbo].[sp_abitableload]
----------------------------------------------
-- 單錶多表分頁儲存過程 --
-- 1.支援單錶多表分頁查詢 --
-- 2.支援排序 --
-- 3.支援表名重新命名 --
-- 4.返回總頁數 --
-- 5.返回總記錄數 --
-- 6.帶行編號 --
-- 缺陷: --
-- 1.多表查詢時,各表中各列名不許出現重名 --
-- edit by shardine 2007.1.19 --
----------------------------------------------
@strfields varchar(500), --欄位名
@strtablename varchar(500), --表名
@strwhere varchar(500), --條件 無需加where
@strorderby varchar(200), --排序 必添 無需加order by
@pagesize int, --分頁大小
@currentpage int, --當前頁,1為起始頁
@pagecount int output, --返回總頁數
@recordcount int output --返回記錄總數
asbegin
declare @startindex int --定義起始位置
set @startindex = (@currentpage - 1) * @pagesize + 1
declare @strsql1 nvarchar (800) --資料查詢
declare @strsql2 nvarchar (1000) --統計記錄總數
declare @parmdefinition nvarchar (800)
set @parmdefinition = n'@tmp int output'
set @strsql1 = n'select row_number() over (order by ' + @strorderby + ' ) as rowid, '
set @strsql2 = 'select @tmp = count(*) '
if @strfields <> ''
set @strsql1 = @strsql1 + @strfields
else
set @strsql1 = @strsql1 + ' * '
if @strtablename <> ''
begin
set @strsql1 = @strsql1 + ' from ' + @strtablename
set @strsql2 = @strsql2 + ' from ' + @strtablename
endif @strwhere <> ''
begin
set @strsql1 = @strsql1 + ' where ' + @strwhere
set @strsql2 = @strsql2 + ' where ' + @strwhere
endexec sp_executesql @strsql2,@parmdefinition,@tmp = @recordcount output --執行統計記錄總數sql語句
if @recordcount % @pagesize = 0 --計算總頁數
set @pagecount = @recordcount / @pagesize
else
set @pagecount = @recordcount / @pagesize + 1
set @strsql1 = 'with temptable as ( ' + @strsql1 + ' ) select * from temptable where rowid between '
+ convert(varchar(10),@startindex) + ' and ' + convert(varchar(10),@startindex + @pagesize - 1)
exec(@strsql1)
end
SQL 2005 儲存過程分頁
create procedure dbo p pagetest sql nvarchar max sql語句不包括排序 curpage int,當前頁 pagerows int,頁面尺寸 order nvarchar 20 排序字段 ordertype nvarchar 10 排序型別倒序desc或...
SQL2005 分頁儲存過程
最近在使用sqlserver2005的資料庫編碼,查到有乙個row number order by 字段 的函式,通過該函式進行分頁非常的方便,請大家看看我寫的分頁儲存過程。分頁儲存過程 create procedure dbo proc testpage 表名 tablename nvarchar...
Sql2005中分頁儲存過程
set ansi nulls on goset ansi nulls on set quoted identifier on goalter procedure pagetest tblname varchar 255 表名 fldname varchar 255 主鍵欄位名 pagesize in...