求ASP.NET(C#脚本)利用存储过程分页的例子.那位高手大哥给我个完整的能运行的例子.存储过程我又一个,但是我不会利用调用.
就是在上一页,下一页,最后一页那个地方我不会调用.小弟感激不尽!!!!!

解决方案 »

  1.   

    小弟的邮箱是:[email protected]
      

  2.   

    CREATE   PROCEDURE   pagination   
      @tblName   varchar(255),   --   表名     
      @strGetFields   varchar(1000)   ='*',   --   需要返回的列     
      @fldName   varchar(255)='Article_ID',   --   排序的字段名     
      @PageSize   int   =5,   --   页尺寸     
      @PageIndex   int   =1,   --   页码     
      @doCount   bit   =0,   --   返回记录总数,   非   0   值则返回     
      @OrderType   bit   =0,   --   设置排序类型,   非   0   值则降序     
      @strWhere   varchar(1500)   =''   --   查询条件   (注意:   不要加   where)     
      AS     
        
      declare   @strSQL   varchar(5000)   --   主语句     
      declare   @strTmp   varchar(110)   --   临时变量     
      declare   @strOrder   varchar(400)   --   排序类型     
      if   @doCount   !=   0     
      begin     
      if   @strWhere   !=''     
      set   @strSQL   =   'select   count(*)   as   Total   from   ['   +   @tblName   +   ']   where   '+@strWhere     
      else     
      set   @strSQL   =   'select   count(*)   as   Total   from   ['   +   @tblName   +   ']'     
      end     
      --以上代码的意思是如果@doCount传递过来的不是0,就执行总数统计。以下的所有代码都是@doCount为0的情况     
        
      else     
      begin     
      if   @OrderType   !=   0     
      begin     
      set   @strTmp   =   '<(select   min'     
      set   @strOrder   =   '   order   by   ['   +   @fldName   +']   desc'     
      --如果@OrderType不是0,就执行降序,这句很重要!     
      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     
      --以下代码赋予了@strSQL以真正执行的SQL代码     
      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     
      end     
      exec   (@strSQL)   
      GO       
    exec pagination 'CB_Article'
      

  3.   

    下一页,上一页把参数增一 减1 传入存储过程exec pagination 'CB_Article',a,B,C,D 执行存储过程并传入参数
      

  4.   

    无语了,还没入门啊你首先在定义一个当前页的变量(要静态的)pageIndex
    上一页(pageIndex - 1)
    下一页(pageIndex + 1)
    当然,这样说你肯定不明白
    自己看书吧
    这不是一两句话能说的明白的
      

  5.   

    http://www.cnblogs.com/ymyglhb/archive/2008/08/11/1265197.html
    http://www.cnblogs.com/leening/archive/2008/10/20/1315028.html