zoukankan      html  css  js  c++  java
  • 通用分页存储过程

     1 CREATE PROCEDURE [dbo].[P_PageByRownumber]
     2 (
     3      @tbName VARCHAR(255),                        --表名
     4      @tbGetFields VARCHAR(max)= '*',        --返回字段
     5      @OrderfldName VARCHAR(255),                 --排序的字段名
     6      @PageSize INT=20,                            --页尺寸
     7      @PageIndex INT=1,                            --页码
     8      @OrderType bit = 0,                          --0升序,非0降序
     9      @strWhere VARCHAR(max)='',                   --查询条件
    10      @TotalCount INT OUTPUT                       --返回总记录数
    11  )
    12  AS
    13  BEGIN
    14      DECLARE @strSql VARCHAR(max)                  --主语句
    15      DECLARE @strSqlCount NVARCHAR(max)            --查询记录总数主语句
    16      DECLARE @strOrder VARCHAR(300)                -- 排序类型
    17      DECLARE @RecoderCount int                     --总记录数
    18     --------------总记录数---------------
    19      set @strWhere=replace(@strWhere,'&dyh','''')
    20      IF ISNULL(@strWhere,'') <>'' 
    21           SET @strSqlCount='Select @TotalCout=count(*) from  ' + @tbName + ' where 1=1 '+ @strWhere
    22      ELSE SET @strSqlCount='Select @TotalCout=count(*) from  ' + @tbName
    23      
    24      --exec(@strSqlCount)
    25      exec sp_executesql @strSqlCount,N'@TotalCout int output',@TotalCount output
    26      --------------分页------------
    27      IF @PageIndex <= 0 SET @PageIndex = 1
    28  
    29      IF(@OrderType<>0) SET @strOrder=' ORDER BY '+@OrderfldName+' DESC '
    30      ELSE SET @strOrder=' ORDER BY '+@OrderfldName+' ASC '
    31  
    32      SET @strSql='SELECT * FROM 
    33      (SELECT ROW_NUMBER() OVER('+@strOrder+') RowNo,'+ @tbGetFields+' FROM ' + @tbName + ' WHERE 1=1 ' + @strWhere+' ) tb 
    34      WHERE tb.RowNo BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND ' +str(@PageIndex*@PageSize)
    35  
    36      exec(@strSql)
    37  END
    38 GO

    PS.查询条件参数字符串中单引号用'&dyh'代替,转义问题未解决,暂时用特殊字符替换处理了。

  • 相关阅读:
    获取滚动条卷入高度以及获取内联和外联的方法
    async
    使一个div元素上下左右居中
    .NetCore/ .NetFramework 机制
    Asp.netCore 是用的Socket 吗?
    Asp.netCore 的Startup 不继承接口
    月球
    JWT
    虚数的作用
    C# mailKit 发邮件 简单代码
  • 原文地址:https://www.cnblogs.com/servant/p/4447963.html
Copyright © 2011-2022 走看看