Amigo primero perdona que sea tan insistente y gracias por no dejarme tirado, mira según entiendo me dices que agregar esto:
está mal, pero mira que lo elimino y me aparece este error:
Cita: Connection must be valid and open.
Entonces por lo que me has dicho Conexion.open() no debería ir ahí, sino que debo llamar la función Conectar que me acabas de señalar y luego llamar la funcion ValidarUsuario con los parámetros requeridos:
Cita: '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
Conexion.Close()
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
Perdon por esto pero usa plastilina conmigo porque estoy aprendiendo en esto.