1. Crear la conexión (objeto de clase MySqlConnection) y abrir la conexión (método MySqlConnection.Open):
Código:
' CONECTAR a la base de datos
Public Function conectar(ByVal vServer As String, ByVal vBase As String, ByVal vUser As String, ByVal vPwd As String, ByVal oPort As Int16) As Boolean
Dim strCx As String
If Not conexion Is Nothing Then
If conexion.State = 1 Then
Return True
ElseIf conexion.State = ConnectionState.Closed Then
conexion.Open()
Try
sentencias = New MySqlCommand("SET SESSION SQL_BIG_SELECTS=1;", conexion)
sentencias.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show("El servidor responde: " & ControlChars.CrLf & ex.Message, "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Return True
Else
Return False
End If
Else
Try
strCx = "Database=" & vBase & ";Data Source=" & vServer & ";User Id=" & vUser & ";Password=" & vPwd & ";Port=" & oPort.ToString & ";CharSet=utf8;Pooling=false;"
conexion = New MySqlConnection(strCx)
conexion.Open()
If conexion.State = ConnectionState.Open Then
DBstatus = 1
End If
Catch ex As MySqlException
Select Case ex.Number
Case 0
MessageBox.Show("El servidor no responde." & ControlChars.CrLf & "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." & ControlChars.CrLf & "Vuelva a ingresarlas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Select
DBstatus = 0
Return False
End Try
Return True
End If
End Function
2. La operación de lectura dependerá de qué datos quieras obtener y/o de que forma quieras manipularlos:
Ejemplos:
' EJECUTA una sentencia recibida y devuelve true o false según lo que realizó o no
Código:
Public Function Execute(ByVal strSQL As String) As Boolean
Dim sentencias as String = New MySqlCommand(strSQL, conexion)
Try
sentencias.ExecuteNonQuery()
If flagOpen = True Then
conexion.Close()
End If
Return True
Catch ex As MySqlException
Return False
End Try
End Function
' EJECUTA una lectura de una TABLA recibida y devuelve una TABLA. Requiere un MySqlDataAdapter
Código:
Public Function ExecuteReadFull(ByVal Sql As String) As DataTable
Dim sSQL As String
Dim SetDatos As New DataSet
Try
Dim adapter As MySqlDataAdapter = New MySqlDataAdapter(Sql, conexion)
adapter.Fill(SetDatos, "TABLA_SQL")
If flagOpen = True Then
conexion.Close()
End If
Return SetDatos.Tables(0)
Catch ex As MySqlException
Return Nothing
End Try
End Function
Hay mucho más, pero esto te puede orientar.
Nota final: Estos códigos están extraídos de una aplicación en funcionamiento que yo diseñé... Funcionan.
Tip: Verifica si la conexión está activa SIEMPRE antes de ejecutar algo en la base.