Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

MySQL: Desarrollar aplicación VB.Net con componentes enlazados a MySQL de forma nativa
Visual Studio .NET


Mostramos cómo desarrollar una aplicación usando Microsoft Visual Basic .Net 2010 que usa como motor de bases de datos MySQL Server y accede de forma nativa (sin ODBC, ni OLE DB), usando el MySQL Connector Net. Explicamos cómo crear tablas MySQL desde el diseñador de VB.Net, cómo realizar relaciones entre tablas y cómo añadir componentes enlazados a los datos de las tablas en un formulario de forma automática. Explicamos también cómo hacer un ejemplo de formulario maestro-detalle (clientes y sus facturas).



 

Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual Basic .Net y driver Connector/Net

A continuación indicamos los requisitos necesarios para desarrollar una aplicación, usando el IDE de desarrollo Microsoft Visual Basic .Net, que acceda de forma nativa (directa sin intermediarios) al motor de base de datos gratuito MySQL Server.

  • Suite de desarrollo Microsoft Visual Studio .Net 2010: en el siguiente enlace explicamos cómo instalar este entorno de desarrollo de aplicaciones .Net:

Instalar Visual Studio 2010 y desarrollar aplicación con acceso a PostgreSQL

  • Driver Connector/Net de MySQL: necesitaremos las librerías proporcionadas por MySQL para acceso nativo desde .Net, disponibles en el sitio web oficial de MySQL, en la URL:

    http://dev.mysql.com/downloads/connector/net

    En nuestro caso descargaremos la versión 6.4.3 y la plataforma (Select Platform) "Microsoft Windows", descargaremos "Windows (x86, 32-bit), MSI Installer" (mysql-connector-net-6.4.3.msi):

Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual Basic .Net y driver Connector/Net

Ejecutaremos el fichero mysql-connector-net-6.4.3.msi descargado:

Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual Basic .Net y driver Connector/Net

    Pulsaremos en "Ejecutar" en la ventana de Advertencia de seguridad de Abrir archivo:

Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual Basic .Net y driver Connector/Net

Se iniciará el asistente de instalación de MySQL Connector Net 6.4.3, pulsaremos "Next":

Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual Basic .Net y driver Connector/Net

Pulsaremos en "Custom" para realizar una instalación personalizada:

Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual Basic .Net y driver Connector/Net

Los componentes a instalar:

  • Entity Framework Support.
  • Core Components.
  • Documentation.
  • Web Providers.
  • Compact Framework Support.
  • Visua Studio Integration.
  • Samples.

Pulsaremos "Nex" para continuar con la instalación de MySQL Connector Net:

Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual Basic .Net y driver Connector/Net

Pulsaremos "Install" para iniciar la instalación definitiva de MySQL Connector Net:

Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual Basic .Net y driver Connector/Net

Tras la instalación de MySQL Connector Net 6.4.3, el asistente nos indicará que la instalación ha finalizado. Pulsaremos "Finish":

Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual Basic .Net y driver Connector/Net

 

  • Servidor con MySQL Server: necesitaremos, obviamente, un equipo con el motor de base de datos MySQL instalado y funcionando. En los siguientes enlaces mostramos algunos ejemplos sobre cómo montar un servidor de MySQL Server en varios sistemas operativos:

 

Crear solución VB.Net con acceso a MySQL Server de forma nativa con MySQL Connector .Net y controles enlazados

Vamos a explicar a continuación cómo usar el diseñador de Microsoft Visual Basic .Net 2010, con una conexión a MySQL Server, para crear tablas y relaciones desde el propio IDE de Visual Basic. Explicaremos también cómo agregar componentes enlazados a un formulario de VB.Net de forma automática, con solo arrastrar y soltar, tanto un grid (rejilla) de datos como campos enlazados. Mostraremos también cómo realizar un formulario en modo maestro - detalle (mostraremos cómo diseñar que para cada cliente que se seleccione aparezcan sus facturas asociadas).

 

Crear nueva solución VB.Net

Para agregar un nuevo proyecto o solución abriremos Microsoft Visual Basic .Net, en el menú pulsaremos en "Archivo" - "Nuevo proyecto":

Crear nueva solución VB.Net

Seleccionaremos "Visual Basic" - "Windows" y en la parte derecha seleccionaremos "Aplicación de Windows Forms". Introduciremos el nombre para la solución, por ejemplo "AjpdSoftAccesoNativoMySQLEnlazado" y pulsaremos "Aceptar":

Crear nueva solución VB.Net

 

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

A continuación conectaremos el IDE de Visual Basic .Net a MySQL Server, así podremos administrar el servidor de bases de datos MySQL Server desde el propio IDE de desarrollo de Visual Basic. Esta conexión será sólo para enlazar el IDE de desarrollo de VB.Net con MySQL Server, no se usará para la aplicación que desarrollemos más asdelante, que requerirá de un Origen de datos.

Para ello pulsaremos en el menú "Ver" - "Explorador de servidores":

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Desde la ventana del Explorador de servidores, pulsaremos con el botón derecho del ratón sobre "Conexiones de datos", en el menú emergente seleccionaremos "Agregar conexión":

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Puesto que hemos instalado MySQL Connector .Net, en la ventana de selección de origen de datos, nos mostrará, entre otros, "MySQL Database", lo seleccionaremos, en el desplegable de "Proveedor de datos" seleccionaremos ".NET Framework Data Provider for MySQL". Pulsaremos "Continuar":

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

A continuación indicaremos los datos de conexión al servidor MySQL Server:

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

  • Origen de datos: MySQL Database (MySQL Data Provider).
  • Server name: nombre de red (hostname) o dirección IP del servidor con MySQL Server.
  • User name: nombre de usuario de MySQL Server con permisos suficientes para las acciones que queramos realizar en la base de datos.
  • Password: contraseña del usuario anterior de MySQL Server.
    • Save my password: marcaremos esta opción para guardar la contraseña del usuario de MySQL Server, en este caso no es "peligroso" siempre que nos aseguremos de que sólo nosotros tenemos acceso al equipo. Guardar esta contraseña no es peligroso porque sólo la usaremos en el IDE de desarrollo de VB.Net, no en la aplicación que creemos más adelante, donde sí será recomendable encriptarla. Aún así, si no estamos del todo seguros, no marcaremos esta opción y, cada vez que queramos conectar con el servidor de MySQL Server deberemos indicar la contraseña.
  • Database name: antes de seleccionar la base de datos, pulsaremos en el botón "Avanzadas", sobre todo si usamos alguna configuración en el servidor de MySQL Server diferente a la estándar, por ejemplo, si el puerto no es el de defecto 3306, pulsaremos en el botón "Avanzadas" y eb "Port" seleccionaremos el puerto de nuestro servidor de MySQL Server:

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Ahora podremos seleccionar el nombre del esquema o base de datos a la que nos conectaremos del MySQL Server, con la que trabajaremos, en "Database name", por ejemplo "bdajpdsoft" (debe existir en el servidor de MySQL Server, si no existe habría que crearla con MySQL Administrator ó MySQL Workbench).

Una vez introducidos todos los datos para la conexión a MySQL Server desde Microsoft Visual Basic .Net, pulsaremos en "Probar conexión" para verificar que el servidor de MySQL Server está disponible y que los datos de conexión son correctos:

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Si todo es correcto mostrará el siguiente mensaje, si hay algún error mostrará un mensaje con el error que se haya producido:

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Con el texto: "La conexión de prueba se realizó correctamente".

El Explorador de servidores de Microsoft VB.Net enlazará con el servidor de MySQL Server indicado en la cadena de conexión y nos mostrará las tablas, vistas, procedimientos almacenados, etc. Desde esta ventana, seleccionando la conexión creada anteriormente (en nuestro caso "proyectoa.com(bdajpdsoft)", podremos crear tablas, crear vistas, consultar datos, modificar tablas, establecer relaciones, realizar consultas, etc. Todo ello integrado en el mismo IDE de VB.Net.

Como ejemplo, vamos a crear dos tablas: "clientes" y "facturas" y, además, las enlazaremos en maestro detalle (clave foránea). Para crear una tabla en el servidor de MySQL Server desde VB.Net, pulsaremos con el botón derecho del ratón sobre "Tables" (una vez desplegada la conexión realizada anteriormente en la ventana del "Explorador de servidores" - "Conexiones de datos"), en el menú emergente seleccionaremos "Create table":

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Creremos las columnas (campos) que queramos para la tabla, asignándoles el tipo de datos adecuado para cada una de ellas. Por ejemplo, para la tabla "facturas", añadiremos los campos:

  • codigo: con tipo de datos "int" (Data Type), desmarcaremos "Allow Nulls" para no permitir nulos y en la ventana de "Column Properties" (ventana inferior), en "Options", seleccionaremos la propiedad "Autoincrement" y estableceremos su valor a "Yes". De esta forma, la columna "codigo" será de tipo entero y autoincremental. También será clave primaria (primary key), más adelante explicaremos cómo.
  • fecha: de tipo "date".
  • codigocliente: de tipo "int", este campo será la clave foránea que enlazará la tabla "facturas" con la tabla "clientes", más adelante explicaremos cómo hacer esta relación.
  • importe: de tipo "float".
  • observacion: de tipo "text", en esta columna sí permitiremos nulos, por lo que marcaremos "Allow Nulls".

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Una vez introducidos todos los campos de la tabla, estableceremos la clave principal (primary key), para ello seleccionaremos la columna (campo) que será clave primaria de la tabla, en nuestro caso "codigo" y pulsaremos en el menú "Diseñador de tablas" - "Establecer clave principal":

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Para identificarla, el diseñador habrá añadido un icono con forma de llave al campo que será clave primaria. Ahora podremos guardar la tabla, para ello pulsaremos en el botón "Guardar Tabla" (o las teclas Control + S):

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Puesto que es la primera vez que guardamos la tabla, nos solicitará el nombre para la tabla, introduciremos "facturas" y pulsaremos "OK":

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Desde el Explorador de soluciones podremos ver la nueva tabla creada en el servidor de MySQL Server desde el IDE de VB.Net, en el diseñador de tablas podremos consultar y modificar los campos de la tabla:

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Volveremos al Explorador de servidores para crear una segunda tabla "clientes", pulsaremos con el botón derecho y seleccionaremos "Create Table":

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Procederemos de la misma forma que para la tabla "facturas". Para la tabla "clientes" añadiremos los campos:

  • codigo: de tipo "int" y autoincremento.
  • nombre: de tipo "varchar(150)".
  • direccion: de tipo "varchar(100)".
  • observacion: de tipo "text".

Estableceremos la columna "codigo" como clave primaria de la tabla y guardaremos con Control + S, en nombre introduciremos "clientes":

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Ahora crearemos la relación entre la tabla "clientes" y la tabla "facturas" mediante el campo "codigocliente" de la tabla facturas y "codigo" de la tabla "clientes". Para ello, con una de las dos tablas abiertas en el diseñador de tablas, pulsaremos en el menú "Diseñador de tablas" - "Relaciones":

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Nota importante: si el submenú "Relaciones" no aparece habilitado es debido a que las tablas de MySQL Server no son de tipo InnoDB, que son las que admiten relaciones. De ser así habría que cambiarles el tipo con MySQL Administrator ó MySQL Workbench o bien como indicamos aquí).

En la ventana de Foreign Key Relationships (Relaciones de clave foránea), introduciremos los siguientes datos:

  • Name: nombre identificativo de la relación (clave foránea), por ejemplo "FK_facturas_clientes".
  • Referenced Table: tabla referenciada "clientes", la que contiene el campo clave primaria (codigo) que enlazará con el campo clave foránea (codigocliente) de la tabla "facturas".
  • Update: seleccionaremos "Cascade", de forma que si se realiza alguna modificación en la tabla "clientes", ésta se propagará en la tabla "facturas".
  • Delete: seleccionaremos "Cascade", como ejemplo, aunque no es recomendable, pues en este caso, si se elimina un cliente se eliminarán sus facturas asociadas. Esto puede ser útil en algunas circunstancias pero es, por lo general, peligroso. Se puede dejar "Cascade", pero en el formulario de nuestra aplicación VB.Net, antes de eliminar un cliente, habría que comprobar si tiene facturas asociadas, en cuyo caso deberíamos advertir al usuario que si elimina el cliente se eliminarán todas sus facturas asociadas.
  • En "Columns" estableceremos la columna de la tabla "facturas" que es clave foránea "codigocliente" y la columna de la tabla "clientes" que es clave primaria "codigo". De esta forma, cuando demos de alta una factura, en el campo "codigocliente" guardaremos el código del cliente asociado a la factura (campo "codigo" de la tabla "clientes"), dejando así la factura relacionada con su cliente.

Una vez introducidos los datos para la clave foránea que relacionará la tabla "facturas" con la tabla "clientes" pulsaremos "Close":

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

Guardaremos los cambios realizados:

Agregar conexión a MySQL Server desde el IDE de VB.Net, crear tablas y relaciones desde el Diseñador de tablas

 

Agregar nuevo origen de datos para enlace de la solución VB.Net con MySQL Server

Anteriormente hemos explicado cómo conectar el IDE de VB.Net a MySQL Server para administrar el servidor de base de datos desde el propio Visual Basic (crear tablas y demás). Ahora explicaremos cómo crear un nuevo origen de datos, que será el que utilicemos para la aplicación que vamos a desarrollar.

Para crear un nuevo origen de datos pulsaremos en el menú "Datos" - "Agregar nuevo origen de datos":

Agregar nuevo origen de datos para enlace de la solución VB.Net con MySQL Server

Desde la ventana de "Orígenes de datos" pulsaremos en "Agregar nuevo origen de datos" (en la parte inferior):

Agregar nuevo origen de datos para enlace de la solución VB.Net con MySQL Server

En "Elegir un tipo de origen de datos" seleccionaremos "Base de datos", pulsaremos "Siguiente":

Agregar nuevo origen de datos para enlace de la solución VB.Net con MySQL Server

En "Elegir un modelo de base de datos" seleccionaremos "Conjunto de datos" y pulsaremos "Siguiente":

Agregar nuevo origen de datos para enlace de la solución VB.Net con MySQL Server

A continuación, en "Elegir la conexión de datos" seleccionaremos la que hemos creado anteriormente para el IDE de desarrollo, llamada "proyectoa.com(bdajpdsoft)". El asistente nos dará dos posibilidades para la contraseña, con la siguiente información:

Esta cadena de conexión parece contener datos confidenciales (por ejemplo, una contraseña) que son necesarios para conectarse con la base de datos. Sin embargo, almacenar datos confidenciales en la cadena de conexión puede suponer un riesgo para la seguridad. ¿Desea incluir estos datos en la cadena de conexión?

  • No, excluir los datos confidenciales de la cadena de conexión. Estableceré esta información en el código de mi aplicación.
  • Sí, incluir datos confidenciales en la cadena de conexión.

Si marcamos la opción "Sí", la contraseña se guardará directamente (sin encriptar) en el string de conexión. Esto no es recomendado para aplicaciones profesionales con datos en producción, pues si un usuario malintencionado lee el fichero de configuración podrá saber el usuario y contraseña del servidor de MySQL Server y podrá acceder a las tablas directamente sin usar nuestra aplicación.

De momento, para no complicar la aplicación, marcaremos "Sí" y, en otro momento, explicaremos cómo encriptar esta contraseña para que no suponga un fallo de seguridad. Pulsaremos "Siguiente" para continuar:

Agregar nuevo origen de datos para enlace de la solución VB.Net con MySQL Server

La cadena de conexión resultante para MySQL Será: server=proyectoa.com; User Id=root; password=xxx; port=3306; database=bdajpdsoft.

Guardaremos la cadena de conexión en el archivo de configuración de la aplicación, para ello marcaremos "Sí, guardar la conexión como" e introduciremos un nombre para la cadena de conexión, por ejemplo "bajpdsoftConnectionString":

Agregar nuevo origen de datos para enlace de la solución VB.Net con MySQL Server

Con el texto: El almacenamiento de las cadenas de conexión del archivo de configuración de aplicación facilita el matenimiento y la implementación. Para guardar la cadena de conexión en el archivo de configuración de la aplicación, escriba un nombre en el cuadro y, a continuación, haga clic en Siguiente. ¿Desea guardar la cadena de conexión en el archivo de configuración de la aplicación?

Ahora elegiremos los objetos de la base de datos que necesitemos usar para desarrollar nuestra aplicación VB.Net, en nuestro caso seleccionaremos las dos tablas creadas anteriormente "clientes" y "fcaturas", así como todos sus campos. El asistente nos mostrará todas las tablas, vistas y demás objetos del servidor de MySQL Server, seleccionaremos sólo aquellos que necesitemos para la aplicación:

Agregar nuevo origen de datos para enlace de la solución VB.Net con MySQL Server

Automáticamente, el asistente creará la ventana con el Dataset seleccionado, incluso nos mostrará gráficamente las relaciones entre las tablas, para ello creará automáticamente el fichero "bdajpdsoftDataset.xsd". Desde esta ventana tendremos los TableAdapter (consultas sobre las tablas) que, más adelante, usaremos para agregar los componentes al formulario:

Agregar nuevo origen de datos para enlace de la solución VB.Net con MySQL Server

Además, el asistente también habrá creado el fichero de configuración de la aplicación "app.config" con los datos del string de conexión:

Agregar nuevo origen de datos para enlace de la solución VB.Net con MySQL Server

 

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Tras crear el origen de datos y los TableAdapter correspondientes a cada tabla de nuestra aplicación (clientes y facturas), ahora crearemos el formulario (ventana) que presentaremos al usuario final y será con la que interactúe. Realizaremos este proceso casi de forma automática, arrastrando y soltando (drag and drop).

Desde el menú "Datos" seleccionaremos "Mostrar orígenes de datos":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

En la ventana de Orígenes de datos nos mostrará el Dataset creado anteriormente "bdajpdsoftDataset" con los TableAdapter de "clientes" y "facturas". Para agregar un grid (rejilla) al formulario donde el usuario podrá consultar y modificar directamente los clientes, pulsaremos en el desplegable de "clientes" y seleccionaremos "DataGridView":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Para agregar un DataGridView enlazado a "clientes" en el formulario será tan sencillo como arrastrar "clientes" al formulario y soltar, automáticamente el asistente de VB.Net nos creará un BindingNavigator (barra de botones para navegación por los registros) y un DataGridView enlazados a "clientes":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Creando en el formulario los siguientes componentes: BdajpdsoftDataset, ClientesBindingsource, ClientesTableAdapter, TableAdapterManager, ClientesBindingNavigator.

Si queremos mostrar también al usuario en el formulario componentes enlazados de tipo TextBox y demás (más eficientes para insertar y modificar datos), en la ventana de "Orígenes de datos", pulsaremos en el desplegable de "clientes" y seleccionaremos "Detalles". Ahora, volveremos a arrastrar y soltar "clientes" al formulario. El asistente de VB.Net, de forma automática, nos insertará en el formulario los componentes necesarios enlazados a los datos de forma automática:

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

En realidad, lo que hace el asistente es agregar un componente por cada campo de "clientes", si el campo es de tipo "varchar" añadirá un componente de tipo TextBox con la propiedad DataBindings.Text = ClientesBindingSource - nombre. De esta forma realiza el enlace a datos automáticamente.

Ahora podremos probar nuestra aplicación VB.Net con acceso a MySQL Server sin añadir ni una sola línea de código fuente (el asistente añadirá algunas, pero muy pocas). Para ello pulsaremos en el botón "Iniciar depuración" o la tecla F5:

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Ya podremos agregar nuevos clientes y consultar los actuales, todo ello casi de forma automática:

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

El código fuente que ha añadido el asistente podremos verlo seleccionando el botón "Guardar" del BindingNavigator, pulsando con el botón derecho del ratón y seleccionando "Ver código":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Las tres líneas de código añadidas por el asistente de forma automática para guardar los cambios realizados en la tabla "clientes":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

    Private Sub ClientesBindingNavigatorSaveItem_Click( _
             sender As System.Object,
             e As System.EventArgs) _
             Handles ClientesBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.ClientesBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.BdajpdsoftDataSet)
    End Sub

Para agregar el grid (rejilla de datos DataGridView) de "facturas" procederemos de la misma forma que para "clientes", teniendo en cuenta que usaremos el "facturas" que cuelga de "clientes", pues es el que tiene el enlace entre ambas. Así pues, en el desplegable de "facturas" (el que está dentro de "clientes"), seleccionaremos "DataGridView" y arrastraremos al formulario:

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

El asistente creará los siguientes componentes no visuales: FacturasBindingSource y FacturasTableAdapter.

Teniendo en cuenta que el asistente ahora no nos creará un BindingNavigator, lo agregaremos manualmente más adelante. Para el caso de los detalles, procederemos de la misma forma que para el caso de los clientes, desde "facturas", pulsaremos en el desplegable y seleccionaremos "detalles":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Arrastraremos y soltaremos en el formulario y el asistente nos agregará los componentes necesarios:

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Por ejemplo, para el caso del campo "fecha" de la factura, puesto que de tipo "date", el asistente de VB.Net nos agregará un DateTimePicker, con la propiedad "DataBindings.Value=FacturasBindingSource - Fecha".

Puesto que el asistente no ha agregado un BindingNavigator, lo agregaremos manualmente desde la ventana "Cuadro de herramientas", sección "Datos", seleccionaremos "BindingNavigator" y lo colocaremos encima del grid (DataGridView) de facturas. Para enlazarlo con su BindingSource correspondiente pulsaremos con el botón derecho sobre el BindingNavigator y seleccionaremos "Propiedades", en la ventana de propiedades del BindingNavigator buscaremos la propiedad "BindingSource", en el desplegable seleccionaremos "FactuasBindingSource":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Ahora agregaremos el botón "Guardar" al BindingNavigator, para ello pulsaremos en el desplegable y seleccionaremos "Button":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Seleccionaremos el nuevo Button añadido a la barra de botones de facturas (BindingNavigator) y pulsaremos con el botón derecho del ratón, en el menú emergente seleccionaremos "Propiedades":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Pulsaremos en el botón "Eventos" (el rayo) , haremos doble clic en el evento "Click":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Añadiremos el siguiente código (casi el mismo que para el botón Guardar del BindingNavigator de clientes):

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

    Private Sub ToolStripButton1_Click(sender As System.Object,
              e As System.EventArgs) Handles ToolStripButton1.Click
        Me.Validate()
        Me.FacturasBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.BdajpdsoftDataSet)
    End Sub
 

Nos queda un pequeño detalle para que nuestra aplicación VB.Net, con acceso a MySQL Server de forma nativa y con componentes enlazados de forma automática en maestro detalle, funcione. Haremos una pequeña modificación en el componente "TableAdapterManager" generado automáticamente, pulsaremos con el botón derecho sobre él y seleccionaremos "Propiedades", buscaremos la propiead "facturaTableAdapter" y en el desplegable seleccionaremos "FacturasTableAdapter":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

De esta forma tan sencilla y sin apenas código ya tendremos nuestra aplicación lista para funcionar, obviamente hemos desarrollado un pequeño ejemplo, una aplicación profesional requerirá de múltiples ventanas, múltiples tablas y relaciones entre ellas. Para probar nuestra aplicación VB.Net pulsaremos "F5":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Como vemos en la imagen, podremos añadir clientes, y podremos añadir varias facturas para un cliente, cuando nos movamos por los clientes, en el grid de facturas aparecerán las facturas asociadas a cada cliente. Todo ello de forma automática:

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

Además, cuando añadamos una nueva factura, automáticamente el campo "codigocliente" aparecerá rellenado con el código del cliente seleccionado, gracias a la relación establecida al principio.

Por supuesto existen muchas mejoras que podríamos y deberíamos realizar si vamos a desarrollar una aplicación para venta y uso de clientes. Por ejemplo, lo ideal sería que el campo "codigocliente" de la tabla "facturas" ni siquiera apareciese, en su lugar debería haber un desplegable para que el usuario pudiera elegir el cliente de la factura. Explicaremos cómo implementar esto en otro momento.

Desde el Explorador de servidores podremos ver cómo queda el contenido de las tablas del servidor de MySQL Server al qu estamos atacando con nuestra aplicación, pulsando en la tabla con el botón derecho y seleccionando "Recuperar datos":

Agregar componentes al formulario de la aplicación VB.Net enlazados con MySQL de forma nativa

 

Qué se necesita en el equipo cliente para ejecutar una aplicación VB.Net con acceso nativo a MySQL Server

Para distribuir nuestra aplicación sin necesidad de instalador, en el equipo donde será ejecutada necesitaremos:

  • El ejecutable de la aplicación compilado en Visual Basic .Net.
  • El fichero mysql.data.dll descargado con el MySQL Connector/Net
  • La versión .Net Framework usada para el proyecto: podremos descargar Microsoft .Net Framework desde:

http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992

(la URL puede variar)

Con estos dos ficheros (ejecutable y dll) y el Microsoft .Net Framework descargado he instalado, podremos utilizar la aplicación, por ejemplo, en un equipo con Microsoft Windows XP, Vista ó 7, sin realizar ninguna instalación (salvo .Net Framework).

Código fuente source code de la aplicación AjpdSoft Acceso nativo MySQL enlazado VB.Net

A continuación mostramos el código fuente de la aplicación AjpdSoft Acceso nativo MySQL enlazado, gran parte generado automáticamente por los asistentes.

Public Class formAccesoMySQLEnlazado

    Private Sub ClientesBindingNavigatorSaveItem_Click( _
             sender As System.Object,
             e As System.EventArgs) _
             Handles ClientesBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.ClientesBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.BdajpdsoftDataSet)
    End Sub

    Private Sub formAccesoMySQLEnlazado_Load( _
             sender As System.Object,
             e As System.EventArgs) Handles MyBase.Load
        'TODO: esta línea de código carga datos en la 
        'tabla() 'BdajpdsoftDataSet.facturas' 
        'Puede moverla o quitarla según sea necesario.
        Me.FacturasTableAdapter.Fill(Me.BdajpdsoftDataSet.facturas)
        'TODO: esta línea de código carga datos en la 
        'tabla 'BdajpdsoftDataSet.clientes' 
        'Puede moverla o quitarla según sea necesario.
        Me.ClientesTableAdapter.Fill(Me.BdajpdsoftDataSet.clientes)
    End Sub

    Private Sub ToolStripButton1_Click(sender As System.Object,
              e As System.EventArgs) Handles ToolStripButton1.Click
        Me.Validate()
        Me.FacturasBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.BdajpdsoftDataSet)
    End Sub
End Class

 

 

 

 

Artículos relacionados

  

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.


Anuncios


Enviado el Jueves, 08 septiembre a las 14:22:23 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A