Você está na página 1de 10

Tutorial de Conexin de bases de datos en Visual Basic

En el presente tutorial repasaremos como establecer la conexin con la base de datos (en este caso MySql) desde un programa hecho en Visual Basic. 1. Una vez abierto el programa Visual Studio 2008, elegimos la opcin Crear > Proyecto

2. Una vez demos Click en esa opcin se nos despliega una venta donde debemos elegir el lenguaje que utilizaremos para nuestro proyecto y el tipo de proyecto que desea desarrollar. All elegiremos como lenguaje Visual Basic > Windows, al hacer esto nos mostrara una serie de opciones o mejor dicho una serie de plantillas, elegiremos aplicacin de Windows form y por ultimo le daremos un nombre al proyecto.

3. Una vez establecidos estos parmetros, Visual Studio carga el entorno de trabajo y nos crea por defecto un formulario. Podemos personalizarlo a nuestro gusto (cambiarle el nombre, el texto a mostrar, el tamao, el color, el estilo, etc.). En el dibujaremos un (1) un TabControl, ya que trabajaremos con distintas pestaas o tabs.

4. En el primer Tab iremos a la propiedades y en la propiedad TEXT lo personalizaremos, en mi caso le colocare Consulta de Varios Registros en un Grib. De igual forma para tener los controles de una forma organizada incorporaremos un group box y dentro del group box colocaremos un Combobox con su respectiva etiqueta, el cual utilizaremos para filtrar la ciudad y por ultimo agregaremos un botn que servir para ejecutar la bsqueda. El formulario debera de verse as luego de haber insertado los controles.

5. Ahora haremos una pequea pausa aqu, para explicar el funcionamiento de las funciones. Como vimos en clases pasadas como hacer la conexin con la base de datos desde el mismo evento donde se ejecuta la consulta, y en si la misma rutina de la consulta, lo que haremos ser llevar esas rutina a una funcin la cual nos ahorrara tiempo y muchas lneas de cdigo al momento que necesitemos reutilizarlas (como lo es este caso). Sobre el nombre de nuestro proyecto hacemos un Click con el botn derecho del Mouse y se nos despliega un men > en el buscamos la opcin agregar, la cual a su vez despliega un sub men, en el que elegiremos la opcin nuevo elemento.

en mi caso el nombre de mi proyecto es tutorial es all donde debo hacer Click derecho

6. Una vez hagamos Click en esta opcin se nos despliega una ventana con una serie de elementos que podemos agregar al proyecto, para nuestro caso agregaremos un elemento de tipo modulo, ya que son estos los que permiten crear funciones de tipo

pblicas( las funciones de tipo pblicas, quieren decir que pueden ser llamadas desde cualquier formulario que se encuentre dentro del proyecto, si la funcin no es declarada en un mdulo sino dentro del formulario la misma solo estar disponible dentro de ese formulario y no podr ser llamada desde otras instancias).

Le colocamos un nombre a nuestro modulo, en mi caso lo llame funciones 7. Una vez agregado el modulo procedemos a hacer doble click sobre el para entrar a la ventana de cdigo, donde declararemos las funciones de tipo publica que utilizaremos en el proyecto. Pero antes, debemos hacer un paso muy importante, si an no se tiene agregada la referencia del conector de base de datos, no tendremos las libreras contenidas en las DLL para hacer la conexiones, entonces agregamos la referencia de MySql. Hacemos Click derecho sobre el nombre del proyecto, en el men le decimos agregar referencia , nos situamos en la pestaa examinar y buscamos la ruta de donde se encuentran las libreras que necesitamos agregar, en mi caso estn es esta carpeta(ojo esto se vio en clase, es solo a manera de repaso).

8. De vuelta nuevamente al mdulo funciones importamos la librera MySql.Data y procedemos a crear nuestra funcin. Aqu est el cdigo que crea la funcin para buscar datos y almacenarlos en un DataTable, esta funcin la podemos utilizar siempre que necesitemos hacer una consulta que como resultado nos traer ms de una fila y ms de una columna.

Imports MySql.Data.MySqlClient Module funciones ' Definimos la funcin con la palabra resrvada Function, seguidamente le damos el nombre de nuestra ' preferencia, (en este caso "BuscarDatosDatatable") seguidamente abrimos parentesis y declaramos los ' parametros que la funcin va a recibir, cuando estos parametros son por 'valor' se coloca ByVal y cuando son ' por referencia se coloca ByRef, para nuestro caso solo utilizaremos valores ByVal, como vemos el parametro que ' declaramos es una variable de tipo String, esto quiere decir que cuando hagamos la llamada a esta funcin ' debemos pasarle como parametro una variable de tipo String, luego de que declaramos los parametros, se ' cierra el parentesis y declaramos que tipo de variable o que tipo de valor va a ser el que devuelva la funcin ' en este caso va a ser un objeto DataTable. Function BuscarDatosDatatable(ByVal pQuery As String) As DataTable ' Esta linea de cdigo lo que nos indica es que en caso de que se presente algn error vaya a la bandera ' RutinaError la cual si se fijan esta en la linea 47 On Error GoTo RutinaError ' Creamos un objeto de tipo conexion mysql (MySqlConnection) Dim vConn As New MySqlConnection

' Le indicamos la cadena de conexin con el servidor vConn.ConnectionString = "database = pedidos; data source = localhost; user id = root; password = k15992715" ' Abrimos la conexin al servidor vConn.Open() ' Declaramos el objeto de tipo adaptador de MySql (MySqlDataAdapter), el cual si recordamos es el que se ' encarga de "llevar" la conexin y el sql de la consulta y ejecutarla en la base de datos Dim vAdapter As New MySqlDataAdapter(pQuery, vConn) ' Declaramos un objeto de tipo DataTable, donde almacenaremos el resultado de la consulta Dim vTable As New DataTable ' Llenamos el DataTable con el resultado de la consulta que tiene el Adaptador vAdapter.Fill(vTable) ' Y por ultimo indicamos que la funcin es igual al resultado almacenado en el datatable, esto quiere decir ' que ese sera el valor que nos devolvera la funcin BuscarDatosDatatable = vTable Exit Function RutinaError: BuscarDatosDatatable = Nothing MsgBox(Err.Description) Err.Clear() End Function End Module

Como se puede observar las lneas de cdigo poseen comentarios que le agregue para explicar lo que hace cada lnea de la funcin, los comentarios son trozos de cdigo los cuales el programa omite, son solo para referencia del programador, estos se escriben luego de un comilla simple , y en el editor se reconocen fcilmente por tener un color verde.

9. Una vez creada la funcin vamos a proceder a agregar el cdigo para llenar el ComboBox, desde una tabla llamada ciudades la cual est en la base de datos pedidos. Como necesitamos que cuando el formulario se abra ya estn cargadas las ciudades en l, debemos entonces escribir ese cdigo dentro del evento Load del formulario, pero no escribiremos directamente el cdigo dentro del evento, crearemos un procedimiento el cual llamaremos desde el evento del formulario. Para crear un procedimiento hacemos dobleClick sobre el formulario para entrar en el editor de cdigo, una vez all nos situamos entre el ultimo End Sub que veamos y la expresin End Class, es importante que siempre sea antes de End Class, ya que ningn elemento

10. puede ir fuera de la clase que lo contiene.

Este el cdigo del procedimiento de llenado del ComboBox

' Declaramos el Procedimiento con la palabra reservada SUB, seguidamente le colocamos un nombre ' en mi caso le coloque prLlenaCombo, Recordemos que un procedimiento no es mas que un bloque ' de cdigo reutilizable que ejecuta una serie de eventos, puede recibir parametros o no (en este caso no ' recibe ningn parametro, fijense que luego del nombre los parentesis estan vacios), pero nunca devuelve un ' resultado. Sub prLlenaCombo() ' Declaro la variable de tipo String donde almacenare la cadena de la consulta Dim Consulta As String = "" ' Asigno el valor a la variable consulta (sql de la consulta) Consulta = "SELECT id_ciudad, ciudad FROM CIUDAD " ' Declaro un objeto de Tipo DataTable Dim vTable As New DataTable ' Esta linea significa lo siguiente: el objeto llamado vTable, va a ser igual al resultado que traiga la ' funcin BuscarDatosDatatable, a la cual le estamos pasando como parametro a la variable Consulta, la ' cual contiene el sql que busca las ciudades, recordemos que esta funcin nos devulve un valor de tipo ' DataTable por este motivo es que almacenamos su resultado en uno. vTable = BuscarDatosDatatable(Consulta) ' Aqui le asignamos el resultado de la consulta almacenado en la variable vTable al ComboBox ' que para mi caso se llama cmb_Ciudades

Me.cmb_Ciudades.DataSource = vTable ' Como la consulta me trae como resultado el id de la ciudad y el nombre, puedo separar que es lo que quiero ' mostrarle al usuario y que quiero usar como valor interno, en este caso muestro el nombre de la ciudad, ' y almaceno el valor del id para utilizarlo despues. Me.cmb_Ciudades.DisplayMember = "ciudad" Me.cmb_Ciudades.ValueMember = "id_ciudad" End Sub

10. Una vez creado el procedimiento solo tenemos que hacer el llamado al procedimiento desde el evento de load del formulario.

11. Ok, hecho esto, solo nos queda la programacin que va dentro del botn de Bsqueda, dicha bsqueda va a estar condicionada por el filtro de la ciudad que escojamos. Es all donde utilizaremos el valor oculto del ComboBox (el ValueMember). El cdigo que va en el botn, en el evento Click es el siguiente:
Private Sub btn_Buscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Buscar.Click ' Declaro la variable de tipo String donde almacenare la cadena de la consulta Dim Consulta As String = "" ' Asigno el valor a la variable consulta (sql de la consulta) Consulta = " SELECT * FROM CLIENTES WHERE DIRECCION = " + Me.cmb_Ciudades.SelectedValue.ToString.Trim ' Declaro un objeto de Tipo DataTable Dim vTable As New DataTable ' Almaceno el resultado en un objeto de tipo DataTable vTable = BuscarDatosDatatable(Consulta) ' El resultado que se almacena en el DataTable se le asigna al DataGribView Me.DataGridView1.DataSource = vTable

End Sub

12. Algunos Tips Extras. Como este ejemplo es de consulta, en las propiedades del DataGribView buscamos una que se llama AllowUserToAddRows y la colocamos en False, esto sirve para que el Grib elimine esa lnea adicional que aparece esperando que el usuario introduzca un dato, de igual forma, como no se quiere que se modifique la informacin proveniente de la consulta, buscamos la propiedad ReadOnly y la colocamos como True.

Otro Tip interesante es que cuando se realiza la consulta nos trae como direccin el cdigo de la ciudad y el id del cliente, que es exactamente lo que est almacenado en la tabla, pero como al usuario no le interesa saber cul es el id de un registro sino lo que este significa, debemos hacer una traduccin para que la informacin que presentamos sea mucho ms limpia. Esto lo logramos modificando el sql que busca a los clientes que originalmente es : " SELECT *
FROM CLIENTES WHERE DIRECCION = " + Me.cmb_Ciudades.SelectedValue.ToString.Trim, este sql lo podemos modificar por el siguiente: SELECT nombre, cedula, Case When direccion = 1 then 'Maracay' When direccion = 2 then 'Valencia' When direccion = 3 then 'Caracas' When direccion = 4 then 'Margarita' End direccion, Telefono, Case When estatus = 0 then 'Inactivo' When estatus = 1 then 'Activo' End estatus FROM Clientes WHERE Direccion = + Me.cmb_Ciudades.SelectedValue.ToString.Trim

Esta es una forma de realizar la traduccin de los datos, aunque aqu limitamos el nmero de parmetros que puede tener la tabla, aunque no deja de ser una forma de cmo hacerlo, para el caso del estatus si funciona de maravilla ya que solo hay dos estados, Activo e Inactivo. En el prximo ejercicio veremos cmo hacerlo de manera paramtrica. En el siguiente Tutorial estaremos realizando la misma consulta pero la mostraremos en campos de texto en vez de un DataGribView.

Você também pode gostar