关于vb作数据库数据显示的问题!!(后台是用的oracle)
小弟在做一个数据显示窗口的时候,遇到一个问题!就是我在数据库中对数据进行更新后
运行vb的数据显示程序(数据库内的数据确实已经更新了),第一次不能检出新数据,第二次才能检出新数据。为什么?
我是用代码刷新数据库中的一个表,然后用ado控件获取该表的信息,再用一个datagrid控件
显示出来的!!
我的代码如下:
Private Sub Form_Load()
'定义变量
Dim cnn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs1, rsddgd, rsczcl As ADODB.Recordset
Dim s As Integer
'set变量
Set cnn = New ADODB.Connection
'Set cmd = New ADODB.Command
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set rsczcl = New ADODB.Recordset
Set rsddgd = New ADODB.Recordset
'建立连接
cnn.ConnectionString = "Provider=OraOLEDB.Oracle.1;Password=tiger;Persist Security Info=True;User
ID=scott;Data Source=oradb"
cnn.Open
'需要为czcl_imfor建立一个记录集,不记得为什么要这样做了!!
rsczcl.CursorLocation = adUseClient
rsczcl.Open "select * from czcl_imfor", cnn, adOpenDynamic, adLockBatchOptimistic
'为到达股道表建立一个记录集,用以更新ddgd_imfor表里的数据!
rsddgd.CursorLocation = adUseClient
rsddgd.Open "select * from ddgd_imfor", cnn, adOpenDynamic, adLockBatchOptimistic
'判断表是否为空,若不为空则清空
If rsddgd.RecordCount <> 0 Then
Do While Not rsddgd.EOF
rsddgd.Delete
rsddgd.MoveNext
rsddgd.UpdateBatch
Loop
End If
'在czcl_imfor表中检索数据并加入到ddgd_imfor表中,添加dd01股道的信息
rs1.CursorLocation = adUseClient
rs1.Open "select zygd,ddcc from czcl_imfor where zygd='dd01' ", cnn, adOpenDynamic,
adLockBatchOptimistic
'判断记录集是否为空,对于两种情况进行不同的处理
If rs1.EOF = True And rs1.BOF = True Then
rsddgd.AddNew
rsddgd.Fields("gdm") = "dd01"
rsddgd.UpdateBatch
Else
s = rs1.RecordCount
rsddgd.AddNew
rsddgd.Fields("gdm") = rs1(0)
rsddgd.Fields("ddcc") = rs1(1)
rsddgd.Fields("cs") = s
rsddgd.UpdateBatch
End If
rs1.Close
end sub