通過儲存過程分頁

2021-06-04 14:21:58 字數 1592 閱讀 6600

asp.net中實現分明功能,主要運用的是aspnetpager,再呼叫儲存過程進行分頁,該方法適合運用的範圍非常廣,不錯,

set ansi_nulls on

set quoted_identifier on

goalter procedure [dbo].[getpagerdata]

(--表名

@tbname varchar(30),     

--需查詢的內容

@fldname varchar(1000) = '*',

@primarykey varchar(100),  

--查詢條件

@where    varchar(500),

--排序標準

@orderfld varchar(200) = '',   

--排序方法

@ordertype varchar(1000) = 'desc',  

@pageindex int = 1,  

@pagesize  int = 10,

@recordcount int output)as

declare

@sql varchar(5000),@strorder varchar(100),

@strstartindex varchar(10),

@strendindex varchar(10)

select @fldname = isnull(@fldname,'*'),

@where = isnull(@where,''),

@orderfld =isnull(@orderfld,@primarykey),

@ordertype =isnull(@ordertype,'desc'),

@strstartindex = cast( ((@pageindex -1)*@pagesize +1) as varchar(10)),

@strendindex = cast((@pageindex*@pagesize ) as varchar(10))

if isnull(@where,'')<>''

begin

set @where = ' where '+@where

enddeclare @sqlcount nvarchar(1000)

set @sqlcount='select @count=count(1) from '+@tbname + @where

execute sp_executesql    @sqlcount ,n'@count int output' ,@recordcount output

set @sql ='with datalist as

(select row_number() over (order by '+@orderfld+' '+@ordertype+')as row,'

+@fldname+ ' from '+ @tbname

+ @where    +')

select * from datalist where row between '+@strstartindex+ ' and '+ @strendindex

print @sql

exec(@sql)

通過儲存過程實現分頁

create procedure dbo commonpageselect sqlwhere varchar 1000 查詢條件 pagenum int 20,每頁的記錄數 beginline int 1,第幾頁,預設第一頁 sqltable varchar 5000 要查詢的表或檢視,也可以一句s...

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

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