Para verificar si está o no abierta, y si lo está previene que se haya cambiado de base:
Código vb.net:
Ver original'CONECTAR a la base de datos
Public Function Conectar() As Boolean
Dim strCx As String
Dim SetDatos As New DataSet
If Not Conexion Is Nothing Then
If Conexion.State = 1 Then
If Conexion.Database <> ConstBase Then
Conexion.ChangeDatabase(ConstBase)
End If
Return True
ElseIf Conexion.State = ConnectionState.Closed Then
Try
Conexion.Open()
If Conexion.Database <> ConstBase Then
Conexion.ChangeDatabase(ConstBase)
End If
Sentencias = New MySqlCommand("SET SESSION SQL_BIG_SELECTS=1;", Conexion)
Sentencias.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show("El servidor responde: " & vbCrLf & ex.Message, "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Return True
Else
Return False
End If
Else
Try
strCx = "Database=" & nuevoLogin.RegServer.Ip & ";Data Source=" & nuevoLogin.NombreBase & ";User Id=" & nuevoLogin.usuario.UserName & ";Password=" & nuevoLogin.usuario.PasWord & ";Port=" & nuevoLogin.RegServer.Port.ToString & ";CharSet=utf8;Pooling=false;"
Conexion = New MySqlConnection(strCx)
Conexion.Open()
sSQL = "SHOW PROCESSLIST;"
Adapter = New MySqlDataAdapter(sSQL, Conexion)
Adapter.Fill(SetDatos, "LISTAPROCESOS")
If SetDatos.Tables("LISTAPROCESOS").Select("USER = '" & nuevoLogin.usuario.UserName & "'").Length > 1 Then
MessageBox.Show("No se puede realizar la conexión." & vbNewLine & "El usuario " & nuevoLogin.usuario.UserName & "está conectado desde otro puesto.", "Error: ADMINISTRADOR ACTIVO", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End If
Catch ex As MySqlException
Select Case ex.Number
Case 0
MessageBox.Show("El servidor no responde." & vbCrLf & "Consulte con el Administrador de Sistemas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
Case 1226
MessageBox.Show("El usuario ingresado ya se encuentra logueado en otro puesto.", "Error de usuario en conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Case 1045
MessageBox.Show("El nombre de usuario o la clave son incorrectas." & vbCrLf & "Vuelva a ingresarlas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
Case 2003
MessageBox.Show("El Server no responde." & vbCrLf & "Puede haber problemas en la intranet." & vbCrLf & "Consulte con el Administrador de Sistemas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
Case 1049
MessageBox.Show("La base de datos no existe." & vbCrLf & "Notifique al Administrador del sistema.", "Error de conexión a la base", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Select
Return False
End Try
Return True
End If
End Function
ConstBase es una constante de tipo string que contiene el nombre de la base de datos usada.