热情软件屋

 

动态绑定,为什么Datagrid总是不刷新


编号:QA004263
建立日期: 2001年6月26日 最后修改日期:2001年11月18日
所属类别:

jessie:
    操作系统:win98
    编程工具:vb
    问题:请看以下代码。
    Private Sub Option1_Click(Index As Integer)
    Select Case Index
    Case 0
    initdata
    Adodc5.ConnectionString = connstr
    Adodc5.CommandType = adCmdTable
    Adodc5.RecordSource = "person"
    Label19.Caption = Option1(0).Caption & "浏览"
    Label19.FontSize = 18
    Set DataGrid3.DataSource = Adodc5
    DataGrid3.Refresh
    Case 1
    initdata
    Adodc5.ConnectionString = connstr
    Adodc5.CommandType = adCmdTable
    Adodc5.RecordSource = "book"
    Label19.Caption = Option1(1).Caption & "浏览"
    Label19.FontSize = 18
    Set DataGrid3.DataSource = Adodc5
    DataGrid3.Refresh
    Case 2
    initdata
    Adodc5.ConnectionString = connstr
    Adodc5.CommandType = adCmdTable
    Adodc5.RecordSource = "borrow"
    Label19.Caption = Option1(2).Caption & "浏览"
    Label19.FontSize = 18
    Set DataGrid3.DataSource = Adodc5
    DataGrid3.Refresh
    End Select
    End Sub
    为什么只有第一次起作用。而且datagrid3总是不刷新。第一次记录集怎么样它就怎么样。什么原因?奇怪!!!!!!
    水平: 刚入门

回答:

    Adodc.RecoredSource = SQL
    Adodc.Refresh
    DataGrid.ReBind
    即可
    建议:
    1、ConnectionString 在 Form_Lond 中出现一次就够了。
    2、最好用 CommandType = adcmdUnkown。
    3、RecordSource = "Select 表名.字段名,表名.字段名...或 *(全部字段) From 表名 Where 字段名 = '" & 搜索条件(如:Text1) & "' Order By 字段名" order by 为排序
    如:
    "Select * From 商品价目表 Where 价格 = '" & Text1 & "' Order By 字段名" order by 序号"
    "Select 序号,商品名称,价格 From 商品价目表 Where 价格 = '" & Text1 & "' Order By 字段名" order by 序号"
    也可以用 Open 方法打开RecordSet对象,用于更新、删除、等操作
    "Update 表明 Set 字段名 = 值 Where 条件"
    4、学会 With .....End With。
    5、当Set DataGrid.DataSource = Adodc后,应该 Refresh 的是 ADODC。
    6、运用 DataGrid 的 ReBind 方法重新布局,我想你问题的关键也在此。
    
    James Chang的意见:
    只需 Set DataGrid3.DataSource = Adodc5 一次。需要刷新Adoc5而不是DataGrid。
    
    chenyt的意见:
    你这样试一试:
    1.在变换记录集之前,使用语句: set datagrid3.datasource=nothing;
    2. ..... set datagrid3.datasource=adodc5
    3.datagrid3.fresh
    
    wyj的意见:
    每次查询检查记录是否打开,如是就关闭。
    If rs.State = 1 Then
     rs.Close
    End If
    
    spg@seuic.com的意见:
    实际上只要dodc5.Refresh 即可。

此问题由Peilin Song回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, DBGrid, dbgrid, dbcombo

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio