用带条件的SQL语句来查找,条件为开始ID和结束ID,也就是标准的分页存储过程。这样就可以不用一次把记录全取出来了,只取每页显示的记录,可以提高效率。

解决方案 »

  1.   

    也就是说在数据库里面完成分页
    这通常要求你的表有一个整形的主健字段,通常是自增的
    然后根据你要读多少行和从哪一个开始读,返回数据
    CSDN上好像这种算法挺多,楼主不妨自己找找
      

  2.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=B12283DE-DB20-4322-ACCC-12724442808A
      

  3.   

    create table #temp(id indentity primery key int,name char,sex char)
    insert into #temp(name ,sex)values(select name,sex from tablename)
    //创建临时表#temp,并将原表记录插入到临时表#tempcreate declare @starid int  //创建SQL参数,开始ID
    create declare @endid int   //创建SQL参数,结束ID
    create declare @cpage int   //创建SQL参数,当前页 (需要在程序中赋值)      
    craete declare @pagesize int   //创建SQL参数,每页显示的记录数   (根据自己需要赋值)
    craete declare @count int   //创建SQL参数,记录总数set @starid=(@cpage-1)*@pagesize+1
    set @endid=@cpage*@pagesize
    set @count=(select count(*) from #temp)  用于计算总页数select name,sex from #temp where id>=@starid and id<=@endid将以上做为一个存储过程,然后在程序中调用。其中@cpage和@pagesize参数的值需要在程序中赋,而@count怎为传出的参数,他的值要取的程序中,以便计算总页数。不知道单词有没有写错,呵呵!
      

  4.   

    分页的方法也不一定是最好的,像这样的大型数据库,如果访问量很高的话,每次分页都要连接一次数据库,连接数据库所耗的资源也应该考虑,这也会直接影响应用程序的性能。此时应该考虑用连接池!如果用.Net的话,可以将这些数据缓存起来,缓存依赖于数据库。但这样又很耗服务器的内存。没有最好的方法,只有最适合的方法,只要靠自己根据实际情况去权衡。
      

  5.   

    fayewang(飞狐)朋友给的网址我粗略的看了一下,好象他的DataSet ds  = new DataSet();
      OleDbDataAdapter adapter  = new OleDbDataAdapter("Select Title,CreateDate from Document", myConnection);
      adapter.Fill(ds, "Document");
      MyDataGrid.DataSource = ds.Tables["Document"].DefaultView;也没有解决我的问题,只是表现数据的时候的分页的实现方法
      

  6.   

    可以不改变,你看我上面放的SQL语句啊这样吧,你把你表里的字段贴上来(包括类型),我给你一个完整的分页存储过程。但实现分页还是需要程序控制的。
      

  7.   

    好的,我的E-mail是[email protected]
    非常感谢!!
      

  8.   

    我以前做过类似的,我当时只是把DataGrid的自动刷新关了。
    DataGrid每加入一条新记录就会把自己刷新一片,当时我就是在开始的时候把这个功能关了,全部数据搞完了才把这个功能打开。设置一个属性就行。
    当时感觉一下次快了10倍以上。建议楼主试试。
      

  9.   

    TO:gylwh() 我晚上回家跟你发,等着收。
      

  10.   

    看到了list了,正在接收中....
      

  11.   

    建临时表的目的是为了将原来的数据进行重新的排序,否则不能很好的实现分页,因为分页是根据开始ID和结束ID来查找数据的,如果数据不是连续的,那么就会出问题,至于什么问题没有试过。
      

  12.   

    yaopeng117(充电),我已经下了事例,不过还有个比较菜的问题:怎么把你给我的那个数据库导入到我的SQL Server 里面,我尝试了用csdn为名建立了一个新数据库,然后导入,但不成功,提示它不是有效的磁带格式备份集。
      

  13.   

    我附加了,但是它给我自动命名为csdn2...
    你给我的只有csdn...
    不成功
    不过我改过来了,现在可以了
    谢谢