如何解决用DataGrid控件来显示过多记录太慢连接到一有一百万条记录的ORA数据库,用DataGrid控件来显示数据,每一次打开数据库时都要好长一段时间装入全部数据,应如何调整显示数据方式,能否说一打开时只显示一百条,一直浏览,到浏览完这一百条,自动再装入接下来的一百条数据,具体有那几个方面要设置的.我是用VB自带的[窗体生成功能生成的基本语句,请大家看看要达到上面那种方式要如何改才行的.
'==============================================================
Dim WithEvents adoPrimaryRS As Recordset
Dim mbChangedByCode As Boolean
Dim mvBookMark As Variant
Dim mbEditFlag As Boolean
Dim mbAddNewFlag As Boolean
Dim mbDataChanged As BooleanPrivate Sub CMDCONN_Click()'-------------------
 Dim db As Connection
  Set db = New Connection
  db.CursorLocation = adUseClient
  db.Open "Provider=MSDAORA.1;Password=" & Text(1).Text & ";User ID= " & Text(0).Text & ";Data Source=" & Text(2).Text & ";Persist Security Info=True;"'db.Open "Provider=MSDAORA.1;Password=pass;User ID=admin;Data Source=orcl;Persist Security Info=True;"
  Set adoPrimaryRS = New Recordset
  adoPrimaryRS.Open "select * from SJ", db, adOpenStatic, adLockOptimistic  Set grdDataGrid.DataSource = adoPrimaryRS
  mbDataChanged = False
  '=================================End SubPrivate Sub cmdFirst_Click()
  On Error GoTo GoFirstError  adoPrimaryRS.MoveFirst
  mbDataChanged = False  Exit SubGoFirstError:
  MsgBox Err.Description
End SubPrivate Sub cmdLast_Click()
  On Error GoTo GoLastError  adoPrimaryRS.MoveLast
  mbDataChanged = False  Exit SubGoLastError:
  MsgBox Err.Description
End SubPrivate Sub cmdNext_Click()
  On Error GoTo GoNextError  If Not adoPrimaryRS.EOF Then adoPrimaryRS.MoveNext
  If adoPrimaryRS.EOF And adoPrimaryRS.RecordCount > 0 Then
    Beep
     '已到最后返回
    adoPrimaryRS.MoveLast
  End If
  '显示当前记录
  mbDataChanged = False  Exit Sub
GoNextError:
  MsgBox Err.Description
End SubPrivate Sub cmdPrevious_Click()
  On Error GoTo GoPrevError  If Not adoPrimaryRS.BOF Then adoPrimaryRS.MovePrevious
  If adoPrimaryRS.BOF And adoPrimaryRS.RecordCount > 0 Then
    Beep
    '已到最后返回
    adoPrimaryRS.MoveFirst
  End If
  '显示当前记录
  mbDataChanged = False  Exit SubGoPrevError:
  MsgBox Err.Description
End Sub

解决方案 »

  1.   


        结合使用recordset的pagesize、pagecount、absolutepage属性。    具体用法可查联机帮助。
      

  2.   

    在asp可以分页,datagrid也可以吗??方法是不是一样的???
      

  3.   

    我一般都不用DATAGRID, 太慢, 我都是用LISTVIEW来“模拟”GRID的效果 
    自己控制查询, 自己装入数据,
      

  4.   

    我也想知道,datagrid到底能不能进行分页?希望高手回答。怎么实现?代码如何??
      

  5.   

    为什么不加些条件呢!何况你查出那么多有什么意义!分页也是可以!就象中海所说的:结合使用recordset的pagesize、pagecount、absolutepage属性。
      

  6.   

    datagrid不能分页!
    listview可以,但视觉效果不好,不建议使用!
    mshflexgrid最佳,这是我的选择,因为我都试过了,呵呵.
    结合一楼中回复的,把记录一条条的显示在该控件上,不要用datasource属性.给分?
      

  7.   

    datagrid不能分页!
    ////////////////
    datagrid可以分,這裡面說的分和你的理解不同listview速度可以,mshflexgrid和msflexgrid閃動會殺死人的spread速度很好,又強如果一定用datagrid可以分葉顯示或者分解查詢
      

  8.   

    daisy8675(莫依)说datagrid可能分能否说说如何分的,能有代码我参考一下更好,spread是什么控件来的,用法如何的.还请再说明的.