ABC desde cero: Visual Basic 2012 con MySQL

Bueno solo quiero dejar un registro de lo q se ha investigado para realizar un proyecto de ABC simple en .net pero ya no con conexiones a bases de datos MSSQLServer, ahora lo quize hacer con MySQL a ver que sale (windows 8 x64, visual studio 2012), para esto podemos descargar WAMPSERVER, el cual incluye ya el servidor httpd apache y el módulo de interpretación de php, algo q no utilizaremos ahora, ademas tambien incluye el MySQL, el q queremos ;) .

Puedes descargar el proyecto al final del post

IMPORTACION DE LA BD EN MYSQL

Una vez instalado todo abrimos nuestro phpMyAdmin y hacemos nuestra base de datos. Les dejo la base de datos para q solo la importen: papeleria_peque

 

CONEXION VS2012-MySQL

Ahora empezamos lo q venimos a hacer:

1. Para poder conectarnos a nuestra base de datos MySQL, debemos primero descargar  e instalar el conector de mysql desde este enlace.

2.Una vez instalado agregamos una referencia:

3. En la seccion examinar busquen el archivo MySQL.data.DLL en su disco duro, que regularmente se encuentra en la siguiente direccion: (C:\Archivos de programa\MySQL\MySQL Connector Net 6.4.4\Assemblies\v4.0)

4. Aceptamos. Esta acción es para llamara al programa todos los comandos que se utilizan para MySQL sobre .net.Bueno ahora crean un modulo (agregar nuevo elemento –> WindowsForm). En el modulo importan los comandos de MySQL escribiendo hasta la parte mas alta del modulo lo siguiente:

 

Imports MySql.Data.MySqlClientLuego 

5. Ya dentro del modulo realizan el siguiente comando:

Dim conector As New MySqlConnection(“server=localhost;user=root;password=qw;database=papeleria_peque;port=3306″)

 

Para nuestro caso así queda:



Y al ejecutarlo:

 

 

CREACION DE LA INTERFAZ


Definiremos una interfaz sencilla para hacer un alta en la tabla de productos, debe quedar algo de esta forma:
Como vemos existe un combo box que se llenará con las categorías de la base de datos, para esto tendremos que realizar una consulta a la BD, podré el código y explicaré a grandes rasgos que se hizó:

Como se puede ver, desde el Load del form se manda a llamar a un método llamado mostrarCategorias() y el mismo contiene un DataTable y aun DataAdapter de MySQL, el cual es llenado mediante la consulta a la tabla categorias, después se crea una variable llamada fila del tipo DataRow para interceptar todos los campos de la columna nombre_cat, enseguida se agregan al combobox para obtener este resultado:

ALTAS

 

Ahora vamos a programar el botón de GUARDAR para registrar un nuevo producto.
Este botón tiene que realizar primero validaciones de campos (cosa que omitiremos). Para insertar un registro el método queda así (se manda a llamar desde el botón guardar):

La llamada al método get_id_cat, es solo una consulta al indice primario que corresponde con la categoría seleccionada en la interfaz, se crea una variable tipo String para hacer la petición a MySQL ya después se agrega como comando en la variable insertar del tipo MySqlCommand, una vez hecho todo esto solo se abre la conexión y se ejecuta la inserción  Si todo sale bien el resultado debe ser este (en caso contrario revisa tu código):
y si vamos al phpMyAdmin veremos como se insertó correctamente:

 

 

BAJAS

La interfaz quedería así:

 

 

Continuará… aqui mismo

  • Enyelber Altube

    Hola como estas? estoy tratando de hacer la conexion desde visual Basic 2012 de mi maquina a la Base de datos que tengo en el hosting web, con los mismos pasos que colocaste… pero no me deja conectar. Pregunto? hay que hacer algo adicional?

    • http://www.facebook.com/profile.php?id=1561296370 Joseph Rodiz Cuevas

      Tu hosting web es virtual o no?

      • Enyelber Altube

        Gracias Joseph Mi base de datos no es vistual esta hospedada en un hosting. seguire investigando y gracias por la ayuda me estas aclarando muchas cosas

  • Adolfo

    Hola, ¿qué framework utiliza? me sale este error:
    Warning 1 The primary reference “MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL” could not be resolved because it was built against the “.NETFramework,Version=v4.0″ framework. This is a higher version than the currently targeted framework “.NETFramework,Version=v3.5,Profile=Client”. TELM v1.0.0
    No tengo idea de que sea, ya cambié el framework a 4.0 y me sale otro error (no se puede crear formulario).
    Espero su ayuda.

  • Adolfo

    Hola, ¿qué framework es el que utiliza?, yo uso el .NET framework 3.5 client profile.

    Me sale este error, replicado 49 veces:
    Warning 1 The primary reference “MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL” could not be resolved because it was built against the “.NETFramework,Version=v4.0″ framework. This is a higher version than the currently targeted framework “.NETFramework,Version=v3.5,Profile=Client”. nombredelproyecto”
    No tengo idea de cómo resolverlo.

    ¿Alguna sugerencia?

    • Pablo

      tenes que cambiar la versión de .NETFramework que usas en tu proyecto de VB.
      Según lo que dice el error, dice que vos estas usando NETFramework 3.5 y el archivo de MySql necesita el NETFramework 4.0 o superior.
      Saludos

    • Joseph Rodiz Cuevas

      Te sirvio la sol. de pablo?

  • Yimna Galván

    hola, mira yo uso esto para cargar mi combobox :

    Public Sub LlenaCombo1()
    Dim ds As System.Data.DataSet
    Dim da As MySqlDataAdapter
    Dim ssel As String = “SELECT idGenero, nombre FROM genero”

    Dim cadenaConexion As String = “server= localhost; uid=root; password=root; database=bd_biblioteca;port=3306″

    da = New MySqlDataAdapter(ssel, cadenaConexion)
    ds = New System.Data.DataSet

    Try
    da.Fill(ds)
    Me.ComboBox1.DataSource = ds.Tables(0)
    Me.ComboBox1.DisplayMember = “nombre”
    Me.ComboBox1.ValueMember = “idGenero”
    Me.ComboBox1.SelectedIndex = -1
    Catch ex As Exception
    MsgBox(ex.Message)
    End Try
    End Sub

    MI PREGUNTA ES COMO HAGO PARA QUE DESDE EL COMBOBOX INSERTE LOS DATOS A MI TABLA MYSQL ESPERO Y ME PUEDAS RESPONDER :)

    • Joseph Rodiz Cuevas

      Quieres insertar valores cada vez q eligas otro item del combobox

  • Adrian Longoria

    hola
    hay alguna diferencia entre usar WAMPSERVER y appserv?
    por que el codigo esta exacto pero no merca conexion,quiero suponer que se debe a que uso appserv o tal vel cambiaralgun puerto
    espero me puedan ayudar
    gracias

    pues nadie contesto, pero pude resolverlo, gracias por el tutorial, me ha servido mucho :)

    • Joseph Rodiz Cuevas

      Ninguno, q tipo de problema tenias?

      • Adrian Longoria

        al parecer fue problema de instalacion del appserv, solo lo reinstale y listo

        otra pregunta, tendras un ejemplo de como listar datos de la base de datos a un textbox?

        gracias por contestar
        saludos

        • Joseph Rodiz Cuevas

          Te recomiendo un Listbox.

          Con la propiedad items.add

          Dim table As New DataTable
          Dim adaptador As New MySqlDataAdapter(“SELECT nombre FROM categorias”, con)
          adaptador.Fill(table)

          Dim fila As DataRow

          For Each fila In table.Rows
          ListBox1.Items.Add(fila.Item(0))
          Next

  • Chivo

    Amigo cuando quedaria el tema de las bajas?

    • Joseph Rodiz Cuevas

      Es exactamente igual al de altas solo cambias la sentencia SQL

  • RaulDeco

    Disculpe no me aparece dentro de la carpeta” ARCHIVOS DE PROGRAMA” la capeta MySQL solo Aparece “Microsoft SQL Server Compact Edition” y “Microsoft SQL Server”
    lo instale de nuevo (varias veces incluyendo limpiar el registro)pero me da e mismo resutado

    • Joseph Rodiz Cuevas

      localhost:80/phpMyAdmin

      puerto 80 default

  • Pingback: xiaoling()

  • Pingback: hotblogga7()

  • jonathan

    el mejor que he podido encontrar gracias!!!!!

  • abraham

    hermano mejor didactica imposible… Agradecido desde vzla!

  • ere

    eres grande hermano por eliseo mauz

  • Rodolfo

    alguien me podría ayudar con el método “get_id_cat” ya que necesito conocer el id para poder eliminar el registro de la base de datos.

    de antemano muchas gracias!!

  • Eric

    De donde puedo descargar el proyecto?

  • http://las.leagueoflegends.com/ Vayne Kliaa anti otacos HD

    buenisima fuinciona!

  • JUAN

    Necesito ayuda tengo varios textbox le agrego datos y luego le doy clic al boton agregar …..me tiene que agregar los datos en mysql(phpmyadmid)…..necesito el codigo gracias

  • Freeman Sao

    no indentifico asociar los botones y label al codigo. me puedes enviar una impresión de pantalla del código saludos.

  • Irving Hofstadter

    Y que paso? Ya no terminaron el post, tan interesante que es esta informacion. Ojala se animen a terminar el tema.