999999999999999999999999999

解决方案 »

  1.   

    楼上几位说的很对,但是个人还是推崇用SQL分页,那样查询速度会更快,写一个存储过程,传递查询的页码进去,每次只需要查询一页的数据,很快,上网找一下,肯定有的
      

  2.   

    网上大大的有呀,如果查询的数据量不多,就放到数组里面。如果数据量大,就有SQL查询。
      

  3.   

    你试试下面这个,在sqlserver下通过.
    CREATE Proc p_show
    @QueryStr nvarchar(1000), --查询语句,如果查询表,用:select * from 表
    @PageSize int=10, --每页的大小(行数)
    @PageCurrent int=1, --要显示的页
    @FdShow nvarchar (1000)='', --要显示的字段列表,如果查询结果有标识字段,需要指定此值,且不包含标识字段
    @FdOrder nvarchar (1000)='' --排序字段列表
    as
    declare @FdName nvarchar(50) --标识列名
    ,@Id1 varchar(20),@Id2 varchar(20) --开始和结束的记录号
    select @FdName='[ID_'+cast(newid() as varchar(40))+']'
    ,@Id1=cast(@PageSize*(@PageCurrent-1) as varchar(20))
    ,@Id2=cast(@PageSize*@PageCurrent-1 as varchar(20))
    ,@FdShow=case isnull(@FdShow,'') when '' then '*' else @FdShow end
    ,@FdOrder=case isnull(@FdOrder,'') when '' then '' else ' order by '+@FdOrder endexec('select '+@FdName+'=identity(int,0,1),'+@FdShow+'
    into #tb from('+@QueryStr+') a '+@FdOrder+'
    select '+@FdShow+' from #tb where '+@FdName+' between '
    +@Id1+' and '+@Id2
    )
    GO
      

  4.   

    select top 10(每页要显示的条数,假如为每页10条) * from 表名 where 字段为表主键名 not in(select top 10*(页码-1) 字段为表主键名 from 表名) 注:需要传两个参数,一是:每页显示的条数,二是:所要显示的页数
      

  5.   

    基本原理都差不多
    但是proc效率更高laughsmile(海边的星空)   强