martes, 17 de enero de 2012

Conectar MySql con Visual Basic .net 2010

mysql






Hoy voy a hablar de algo que hace unos meses me llevó de cabeza:


¿Cómo conectar MySql con vb.net 2010?


Como podéis ver he creado un módulo para la rutina de conexión con la base de datos. Estas sub-rutinas las llamaré desde los formularios.


La cadena de conexión es una variable global en la que pongo los valores de la conexión:



    Public IdBaseDatos As String = "database=nombre de la base de datos;"
    Public IdIpEquipo As String = "localhost;" ó IpdelOrdenador ó nombredelamáquina
    Public IdUsuario As String = "Uid=Usuario;"
    Public IdPassword As String = "Password=xxxxx;"
    Public IdPuerto As String = "Port=3306;"


    Public CadenadeConexionMySql As String = IdBaseDatos & IdIpEquipo & IdUsuario & IdPassword & IdBaseDatos & IdPuerto




Imports System.Data.SqlClient
Module BaseDatos
    ' Mysql 
    Public cnn As New MySql.Data.MySqlClient.MySqlConnection
    Public dt As New DataTable
    Public da As New MySql.Data.MySqlClient.MySqlDataAdapter
    Public cmd As New MySql.Data.MySqlClient.MySqlCommand
    Public GBindingSource As New BindingSource
    ' abro la conexion




    Public Sub ConectarMySql(ByVal CadenaSql As String)
        Dim ComandosBasicos As New MySql.Data.MySqlClient.MySqlCommandBuilder(da)


        Try


            If cnn.State = ConnectionState.Open Then
                BaseDatos.CerrarMySql()
            End If
            cnn.ConnectionString = Variables.CadenadeConexionMySql
            cnn.Open()
            ' creo el comando y lo lleno con la tabla empleados
            cmd.Connection = cnn
            cmd.CommandText = CadenaSql
            cmd.CommandType = CommandType.Text
            da.SelectCommand = cmd
            '------------------------------------------------------------------------
            ' añado esta linea porque dt.rows.count mostraba los registros 
            ' de las otras consultas
            '------------------------------------------------------------------------
            dt = New DataTable


            da.Fill(dt)
            If InStr(CadenaSql, "*") > 0 Then
                da.InsertCommand = ComandosBasicos.GetInsertCommand
                da.UpdateCommand = ComandosBasicos.GetUpdateCommand
                da.DeleteCommand = ComandosBasicos.GetDeleteCommand
            End If
            GBindingSource.DataSource = dt
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub




    Public Sub GrabarBindingSource()
        Try
            GBindingSource.EndEdit()
            da.Update(dt)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub




    Public Sub CerrarMySql()
        Try
            cnn.Close()
            cnn.Dispose()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try


    End Sub
End Module

No hay comentarios:

Publicar un comentario

Datos personales

avjsite

elxopet.blogspot.com.es

elxopet.blogspot.com.es
banner elxopet.blogspot.com.es

Muchas gracias a tod@s