zoukankan      html  css  js  c++  java
  • 读取表内容 分页返回其读取的值

     

     


    CREATE PROCEDURE DS_GetDataList
     (
      @tblName varchar(255) = '', -- 表名
      @strGetFields varchar(1000) = '*', -- 需要返回的列
      @fldName varchar(255) = 'ReleaseDate', -- 排序的字段名
      @PageSize int = 10, -- 页尺寸
      @PageIndex int = 1, -- 页码
      @RecordCount int output, --输出记录总数
      @OrderType bit = 1, -- 设置排序类型, 非 0 值则降序
      @strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where)
     )
    AS
     declare @strSQL varchar(5000) -- 主语句
     declare @CountSQL nvarchar(4000) -- 语句
     declare @strTmp varchar(1000) -- 临时变量
     declare @strOrder varchar(1000) -- 排序类型

     if @strWhere !=''
      set @CountSQL='select @RecordCount=count(*) from  [' + @tblName + '] where ' + @strWhere +''
     else
      set @CountSQL='select @RecordCount=count(*) from  [' + @tblName + '] '
     
     exec sp_executesql @CountSQL, N'@RecordCount int out ',@RecordCount out

     if @OrderType != 0
      begin
       set @strTmp = '<(select min'
       set @strOrder = ' order by '+ @fldName +' desc'
      end
     else
      begin
       set @strTmp = '>(select max'
       set @strOrder = ' order by '+ @fldName +' asc'
      end
     
     if @PageIndex = 1
      begin
       if @strWhere != ''
        set @strSQL = 'select top '+ str(@PageSize) +' '+ @strGetFields +' from ['+ @tblName +'] where ('+ @strWhere +') '+ @strOrder
       else
        set @strSQL = 'select top '+ str(@PageSize) +' '+ @strGetFields +' from ['+ @tblName +'] '+ @strOrder
      end
     else
      begin
       set @strSQL = 'select top '+ str(@PageSize) +' '+ @strGetFields +' 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) +' '+ @strGetFields +' from ['+ @tblName +'] where '+ @fldName +''+ @strTmp +'('+ @fldName +') from (select top '+ str((@PageIndex-1)*@PageSize) +' '+ @fldName +' from ['+ @tblName +'] where ('+ @strWhere +') '+ @strOrder +') as tblTmp) and '+ @strWhere +' '+ @strOrder
      end

     exec (@strSQL)


    GO

  • 相关阅读:
    解决Thread 的关闭问题
    使用.NET实现断点续传
    如何将int类型数据转换成byte数组
    怎么样读取Excel表格中的数据(C#.Net)
    .NET平台下WEB应用程序的部署(安装数据库和自动配置)
    ASP.NET程序中常用的三十三种代码
    C#中的类型转换
    解决StreamReader读取中文出现乱码的问题
    C#下的Raw Socket编程实现网络封包监视
    利用键盘钩子在Windows平台下捕获键盘动作
  • 原文地址:https://www.cnblogs.com/zyosingan/p/1015347.html
Copyright © 2011-2022 走看看