Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/08/2008, 06:39
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: conector .net 1.0.7 con mysql y .net 2003

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.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)