Sql 分页用到AspnetPager

CREATE   PROCEDURE p_getRecordFromPage
(@pagesize int,
@pageindex int,
@docount bit,
@order varchar(100),
@where varchar(200)='') AS
SET NOCOUNT ON
--@cocount=1为取得总记录数,否则为取分页数据
IF(@docount=1)    --取总记录数
    BEGIN
        DECLARE @sqlStr Varchar(4000)
        SET @sqlStr='SELECT COUNT(InfoID) FROM v_zkcxinfo where 1=1 '+ @where
        EXEC(@sqlStr)
    END
ELSE    --取分页的数据
    BEGIN
        CREATE TABLE #indextable(id int identity(1,1),nid int)
        DECLARE @PageLowerBound int
        DECLARE @PageUpperBound int
        DECLARE @sqlStr1 Varchar(4000)
        SET @PageLowerBound=(@pageindex-1)*@pagesize
        SET @PageUpperBound=@PageLowerBound+@pagesize
        SET ROWCOUNT @PageUpperBound
        SET @sqlStr1='INSERT INTO #indextable(nid) SELECT InfoID FROM v_zkcxinfo where 1=1 ' + @where  + ' ORDER BY ' + @order+' asc '
        EXEC(@sqlStr1)
        --要返回的查询记录值
        SELECT * FROM v_zkcxinfo,#indextable t WHERE InfoID=t.nid
            AND t.id>@PageLowerBound AND t.id<=@PageUpperBound ORDER BY t.id
    END
SET NOCOUNT OFF


GO

你可能感兴趣的:(Sql 分页用到AspnetPager)