由于在我的 .Net Win-Form 应用程序中无法解释的原因,我使用单个全局 OleDbConnection 来连接 Access DB。当我需要时,我打开和关闭连接,但通常连接保持打开状态。问题是有时读取数据不会返回更新的数据:
Using cm As New OleDb.OleDbCommand(sQuery, cn)
Using rd As OleDb.OleDbDataReader = cm.ExecuteReader()
If rd.HasRows Then
If rd.Read() Then
Me.txtBrand.Text = rd.Item("MA_BRAND")
End If
End If
rd.Close()
End Using
End Using
如果我使用新连接,我会得到正确的数据:
Using cn As New OleDb.OleDbConnection(sConnectionString)
cn.Open()
Using cm As New OleDb.OleDbCommand(sQuery, cn)
Using rd As OleDb.OleDbDataReader = cm.ExecuteReader()
If rd.HasRows Then
If rd.Read() Then
Me.txtBrand.Text = rd.Item("MA_BRAND")
End If
End If
rd.Close()
End Using
End Using
cn.Close()
End Using
我必须使用全局连接然后我的解决方案是这样的
cn.Close()
cn.Open()
Using cm As New OleDb.OleDbCommand(sQuery, cn)
但我问:刷新OledbConnection有更好的解决方案吗?
谢谢!皮莱吉