InicioCiencia EducacionVisual Studio: Acceso a base de datos MySQL con ODBC

Visual Studio: Acceso a base de datos MySQL con ODBC



No soy experto en Visual Basic, pero de cuando en cuando lo uso. El año pasado desarrollé un pequeño tutorial que nos lleva sin muchas complicaciones (Tanto como sea posible) A desarrollar una aplicación que se conecte a una base de datos MySQL, utilizando el conector ODBC, luego podremos hacer consultas mediante SQL.

El mismo proceso funciona para conectarse a una base de datos del infame Access, u otras bases de datos.

Requisitos:

Tener instalado MySQL Server
Tener instalado el driver ODBC para MySQL
Este ejercicio se basa en la versión de Visual Studio 2010

¡Comencemos!


1- En primer lugar descargaremos el driver ODBC de la web: http://www.mysql.com/products/connector/.



2- Seguidamente lo instalaremos en el equipo o equipos que se conectarán a MySQL: descomprimiremos el archivo mysql-connector-odbc-3.51.16-win32.zip y ejecutaremos la instalación:



3- Para comprobar que se ha instalado correctamente el driver MyODBC, podremos crearnos una conexión de ejemplo, desde "Inicio" - "Configuración" - "Panel de control" - "Herramientas administrativas" - "Orígenes de datos ODBC". En la pestaña "DSN de sistema" (si queremos que esté disponible para todos los usuarios del equipo) ó "DSN de usuario" (para que sólo esté disponible para el usuario actual con el que hemos iniciado sesión), pulsaremos en "Agregar":



4- Seleccionaremos el origen de datos "MySQL ODBC 3.51 Driver" (o el correspondiente a la versión de MySQL ODBC de que dispongamos), pulsaremos "Finalizar":



5- Rellenaremos los datos correspondientes en la pestaña "Login":
Data Source Name: conexion_vb
Description: Conexión BD Visual Basic .Net
Server: localhost
User: root (O el usuario de la base de datos, como en este ejemplo estoy usando la de prueba)
Password: la que ustedes le pusieron al root o el usuario de la base de datos
Database: test

Una vez completados los datos anteriores pulsaremos "Test" para comprobar que la conexión funciona correctamente:



6- Si no hay problemas veremos la siguiente ventana:



Segunda parte, diseño de la interface:

1- Tras instalar el driver MyODBC correspondiente, abriremos Microsoft Visual Studio, seleccionaremos "Nuevo proyecto...":



2- En "Tipos de proyecto" seleccionaremos "Visual Basic" - "Windows", en "Plantillas" seleccionaremos "Aplicación para Windows":. En "Nombre" introduciremos el nombre del proyecto, en nuestro caso "Conexión a MySQL". Pulsaremos "Aceptar" para continuar:



3- El asistente de creación de nuevo proyecto Visual Studio (Visual Basic) nos creará un proyecto con la siguiente estructura: El proyecto en sí (My Project), un diagrama de clase (ClassDiagram1.cd) y un formulario (Form1.vb).



En nuestro caso hemos decidido cambiar el nombre al fichero del formulario, para ello, desde la ventana de "Explorador de soluciones", pulsamos con el botón derecho del ratón sobre Form1.vb y seleccionamos "Cambiar nombre":



4- También cambiaremos el nombre al objeto Formulario, para ello seleccionaremos el formulario en si (el que aparece a la izquierda y en la ventana de "Propiedades", nos situamos en la propiedad "Name" e introducimos en nombre que queramos darle al formulario:



5- Ahora construiremos la siguiente interface (Arrastrando los elementos al formulario desde el panel “Toolbox” en caso de que esté desactivado, lo activaremos desde en menú View/ tolos o presionando las teclas Control + Alt + x



6- Arrastraremos los siguientes objetos a la aplicación:

1- Objeto Groupbox, con el nombre Groupbox1 y el texto “Datos de conexión”
2- Objeto label, con nombre Label1 y el texto “Motor BD”
3- Objeto comboBox, con el nombre txtMotor

Tomemos en cuenta que el nombre de los objetos se asigna desde el panel “Properties”



7- Y que el texto va desplegar desde la opción text, en el mismo panel properties.



8- Los elementos que se han agregado hasta el momento:



9- Colocaremos el puntero del mouse sobre el combobox, presionaremos el botón derecho del mouse para activar el menú y elegiremos la opción Edit Items



10- Escribiremos MySQL, y haremos clic en ok



11- Agregaremos dos botones y un label más, a los botones les asignaremos los nombres:

4- bConectar
5- bDesconectar
Al label le asignaremos el nombre
6- lInfo



7- Agregaremos otro Groupbox, con el nombre GroupBox2, y le asignamos el texto “SQL a ejecutar”
8- Agregaremos un textBox, con el nombre txtSQL



Podemos activar el scrollbar desde el panel de Propiedades:



Agregaremos tres botones más, con los nombres:
9- bEjecutar
10- bCargar
11- bGuardar
12- Agregaremos otro label, con el nombre label4, y el texto: “El resultado se muestra con los campos separados por tabulador”
13- Agregaremos un textbox con el nombre txtResultado
Finalmente agregaremos cuatro botones con las siguientes características:
14- bGuardarResultado
15- bSeleccionarTodo
16- bCopiar
17- bLimpiar



Tercera parte, programación

Seleccionaremos el formulario e iremos al menú "Ver" - "Código" o simplemente pulsaremos la tecla F7):

Agregaremos el siguiente código de programación:

Imports System.Data
Imports System.Data.Odbc
Imports System
Imports System.IO

Public Class formMenuPrincipal
Public conexionBD As OdbcConnection


Private Sub bConectar_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) _
Handles bConectar.Click
Try
If (txtMotor.Text = "MySQL" Or (txtMotor.Text = "" Then
conexionBD = New OdbcConnection("dsn=conexion_vb"
’Importante, después de dsn= escribir el nombre de la conexión que creamos en la primera parte

End If

conexionBD.Open()
lInfo.Text = "Conectado correctamente"
bDesconectar.Enabled = True
bEjecutar.Enabled = True

Catch ex As OdbcException
lInfo.Text = "Error en la conexión"
bDesconectar.Enabled = False
bEjecutar.Enabled = False
MsgBox(ex.Message)
End Try
End Sub

Private Sub bDesconectar_Click(ByVal sender _
As System.Object, ByVal e As System.EventArgs) _
Handles bDesconectar.Click
Try
conexionBD.Close()
lInfo.Text = "Desconectado correctamente"
Catch ex As OdbcException
'silenciosa
lInfo.Text = "Desconectado correctamente"
End Try
End Sub

Private Sub bEjecutar_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles bEjecutar.Click
Try
Dim sql As String = txtSQL.Text
Dim comandoSQL As OdbcCommand = _
New OdbcCommand(sql, conexionBD)
Dim resultadoSQL As OdbcDataReader = _
comandoSQL.ExecuteReader()
Dim i As Integer

txtResultado.Clear()

For i = 0 To resultadoSQL.FieldCount - 1
If txtResultado.Text <> "" Then
txtResultado.Text = txtResultado.Text & _
Chr(9) & resultadoSQL.GetName(i)
Else
txtResultado.Text = resultadoSQL.GetName(i)
End If
Next i

While resultadoSQL.Read
txtResultado.Text = txtResultado.Text & _
Chr(13) & Chr(10)
For i = 0 To resultadoSQL.FieldCount - 1
If i = 0 Then
txtResultado.Text = txtResultado.Text & _
resultadoSQL(i).ToString
Else
txtResultado.Text = txtResultado.Text & _
Chr(9) & resultadoSQL(i).ToString
End If
Next i
End While

Catch ex As OdbcException
MsgBox(ex.Message)
End Try
End Sub

Private Sub bGuardar_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) _
Handles bGuardar.Click

Dim dlAbrir As New _
System.Windows.Forms.SaveFileDialog

dlAbrir.Filter = "Archivos de Texto (*.txt)|*.txt|" & _
"Archivos de SQL (*.sql)|*.sql|" & _
"Todos los archivos (*.*)|*.*"
dlAbrir.CheckFileExists = False
dlAbrir.OverwritePrompt = True
dlAbrir.Title = "Guardar SQL en fichero"
dlAbrir.ShowDialog()
If dlAbrir.FileName <> "" Then
Dim fichero As New _
System.IO.StreamWriter(dlAbrir.FileName)
fichero.WriteLine(txtSQL.Text)
fichero.Close()
End If
End Sub

Private Sub bCargar_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) _
Handles bCargar.Click
Dim dlAbrir As New _
System.Windows.Forms.OpenFileDialog

dlAbrir.Filter = "Archivos de Texto (*.txt)|*.txt|" & _
"Archivos de SQL (*.sql)|*.sql|" & _
"Todos los archivos (*.*)|*.*"
dlAbrir.CheckFileExists = False
dlAbrir.Multiselect = False
dlAbrir.Title = "Abrir fichero SQL"
dlAbrir.ShowDialog()
If dlAbrir.FileName <> "" Then
Dim fichero As New _
System.IO.StreamReader(dlAbrir.FileName)
txtSQL.Text = fichero.ReadLine
fichero.Close()
End If
End Sub


Private Sub bLimpiar_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles bLimpiar.Click
txtResultado.Clear()
End Sub

Private Sub bCopiar_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles bCopiar.Click
txtResultado.Copy()
End Sub

Private Sub bSeleccionarTodo_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles bSeleccionarTodo.Click
txtResultado.SelectAll()
End Sub

Private Sub bGuardarResultado_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles bGuardarResultado.Click
Dim dlAbrir As New _
System.Windows.Forms.SaveFileDialog

dlAbrir.Filter = "Archivos de texto (*.txt)|*.txt|" & _
"Todos los archivos (*.*)|*.*"
dlAbrir.CheckFileExists = False
dlAbrir.OverwritePrompt = True
dlAbrir.Title = "Guardar resultado ejecución SQL"
dlAbrir.ShowDialog()
If dlAbrir.FileName <> "" Then
Dim fichero As New _
System.IO.StreamWriter(dlAbrir.FileName)
fichero.WriteLine(txtResultado.Text)
fichero.Close()
End If
End Sub
End Class


Terminado lo anterior pueden presionar la tecla F5 para probar la aplicación. Con Shift + F5 detienen la ejecución.
Con el programa ejecutándose, pueden hacer lo siguiente:

1- Seleccionar desde el combobox el motor de base de datos
2- Hacer clic en el botón Conectar
3- Escribir una sentencia MySQL
4- Hacer clic en ejecutar

Si queremos podemos guardar los resultados, copiar o limpiar la pantalla



Estoy seguro que este tutorial ayudará a algunos que estén aprendiendo a usar Visual, preguntas o comentarios estoy a la orden.
Datos archivados del Taringa! original
107puntos
7,468visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
0visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

No hay comentarios nuevos todavía

Autor del Post

j
jchacom🇦🇷
Usuario
Puntos0
Posts29
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.