vb※Sql Server2000用什么控件显示数据快,记录有30万多条!想一次性显示 字段有十几个!
Select * From Tabru如果用分页显示 就是一次显示20条 下次显示20-40条 如此类推
怎么实现此功能!?

解决方案 »

  1.   

    推荐vsflexgrid
    当然mshflexgrid亦可/*
    用存储过程实现的分页程序*/
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_show]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[p_show] 
    GO 
    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 end exec('select '+@FdName+'=identity(int,0,1),'+@FdShow+' 
                    into #tb from('+@QueryStr+') a '+@FdOrder+' 
            select '+@FdShow+' from #tb where '+@FdName+' between ' 
            +@Id1+' and '+@Id2 
            ) 
    GO 
      

  2.   

    如此多的數據﹐建議用datagrid來顯示﹐其耗內存較少
      

  3.   

    用什么显示无所谓,但可以将数据分次取入内存,每次翻页重新刷新Grid
      

  4.   

    如果要说速度快,vb中DataGrid比mshflexGrid 和msflexGrid 快!建议用DataGrid
    还有就是楼主一下子显示那么多数据干什么?在写程序的时候尽量避免用:Select * From Table 这种方式
    数据量太大,显示30万多条数据,基本上是没有意义的!
    建议还是分页显示!
      

  5.   

    建议用DataGrid最好分页显示!
      

  6.   

    数据量太大了,只有DataGrid+分页了。