2014-01-24 3 views
0

Как проверить, установлено ли соединение с mysqlconnection?. Я хочу, что если соединение уже открыто, то не нужно, чтобы открыть его снова:Как проверить состояние SqlConnection перед открытым соединением?

Connection = New MySqlConnection() 
Connection.ConnectionString = ConfigurationManager.ConnectionStrings("DbConncetionString").ConnectionString 
Connection.Open() 
SQL = "SELECT * from TBL_PARKERS where id=" & encode(Request.Cookies("parker").Values("id")) & "" 
Dim Query As MySqlCommand = New MySqlCommand(SQL, Connection) 
'Here i want to check connection is open or close 
Connection.Open() 
+0

Есть ли что-то плохое, что может случиться, если вы откроете его дважды? Если «нет», то не беспокойтесь. –

ответ

3

Учитывая MySqlConnection происходит от DbConnection вы можете проверить State свойства, например,

Connection.State == ConnectionState.Open 
0

Вы можете использовать эту функцию для тестового соединения.

Public Function (сервер ByVal As String) As Boolean TestConn

Using tcpSocket As New System.Net.Sockets.TcpClient 
     Try 
      Dim async As IAsyncResult = tcpSocket.BeginConnect(server, 1433, Nothing, Nothing) 
      Dim startTime As DateTime = DateTime.Now 

      Do 
       System.Threading.Thread.Sleep(500) 
       If (async.IsCompleted) Then 
        Exit Do 
       End If 
      Loop While (DateTime.Now.Subtract(startTime).TotalSeconds < 5) 

      If (async.IsCompleted) Then 
       tcpSocket.EndConnect(async) 
       Return True 
      End If 
      tcpSocket.Close() 

      If (async.IsCompleted = False) Then 
       Return False 
      End If 

     Catch ex As Exception 

      My.Application.Log.WriteEntry("[" & DateTime.Now & "] - " & ex.Source & ": " & ex.Message) 


     End Try 
    End Using 
End Function 

Помните открытый TCP/IP номер порта 1433.

С уважением!

Смежные вопросы