我正在开发销售点系统。我想要显示用户的数据库连接状态。我正在使用MS Access 2013数据库和Visual Studio 2010 (VB)。我为这个项目创建了模块,如下所示
Imports System.Data.OleDb
Module ModConVar
Public sql As String
Public cmd As OleDbCommand
Public dr As OleDbDataReader
Public conn As OleDbConnection
Public connStr As String = System.Environment.CurrentDirectory.ToString & "\NCS_POS_DB.accdb"
Public Sub ConnDB()
Try
conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & connStr & "")
conn.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Module
我在主表单中有一个名为lblDBStatus的标签,我尝试了下面的代码,但它不起作用。
If conn.State = ConnectionState.Open Then
lblDBStatus.Text = "CONECTED"
End If
有什么建议吗?
发布于 2014-03-01 15:36:01
只有当连接状态为open时,才会显示"CONNECTED
“。否则您的标签将不会显示任何内容
尝试此操作,并确保连接已打开:
If conn.State = ConnectionState.Open Then
lblDBStatus.Text = "CONNECTED"
Else
lblDBStatus.Text = "DISCONNECTED"
End If
发布于 2014-03-01 15:39:01
OleDbConnection公开了一个StateChanged事件。
因此,您可以像这样跟踪状态:
Public Sub ConnDB()
Using connection As New OleDbConnection("...")
AddHandler connection.StateChange, AddressOf Me.OnConnectionStateChange
Try
connection.Open()
'Do stuff..
Catch ex As Exception
Throw ex
Finally
RemoveHandler connection.StateChange, AddressOf Me.OnConnectionStateChange
End Try
End Using
End Sub
Private Sub OnConnectionStateChange(sender As Object, e As StateChangeEventArgs)
MessageBox.Show(e.CurrentState.ToString())
End Sub
https://stackoverflow.com/questions/22110922
复制相似问题