动态绑定,为什么Datagrid总是不刷新
编号:QA004263
建立日期: 2001年6月26日 最后修改日期:2001年11月18日
所属类别:
Q
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总是不刷新。第一次记录集怎么样它就怎么样。什么原因?奇怪!!!!!!
水平: 刚入门
A回答:
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。
| |
|
|
| |
|
|