Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
Ingeniería en Desarrollo de Software
Semestre 6
Programa de la asignatura:
Programación NET III
Unidad 3. Manipulación de datos mediante .NET
Clave:
15143632
Universidad Abierta y a Distancia de México
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 1
Índice
Unidad 3. Manipulación de datos mediante .NET .............................................................. 2
Presentación de la unidad ................................................................................................. 2
Propósitos .......................................................................................................................... 2
Competencia específica ..................................................................................................... 2
3.1. Conexión con MySQL mediante. NET ......................................................................... 3
3.1.1 Clases MySql.Data.SqlClient .................................................................................... 3
3.1.2. MySqlConnection ..................................................................................................... 6
Actividad 1. Mysql.Data.SqlClient .................................................................................... 14
Actividad 2. MysqlConnection .......................................................................................... 14
3.2. Manipulación de datos .............................................................................................. 14
3.2.1. MysqlDataAdapter ................................................................................................. 14
Actividad 3. MysqlDataAdapter ........................................................................................ 18
3.2.2. MysqlCommand ..................................................................................................... 18
Actividad 4. MysqlCommand ............................................................................................ 23
3.3. Implementación de la aplicación ............................................................................... 23
3.3.1. Lectura de información mediante VB .NET ............................................................ 24
3.3.2. Actualización de una base de datos MySQL mediante VB .NET ............................ 34
Autoevaluación ................................................................................................................ 43
Evidencia de aprendizaje. Manipulación de datos ............................................................ 43
Autorreflexiones ............................................................................................................... 43
Cierre de unidad .............................................................................................................. 43
Para saber más ............................................................................................................... 44
Fuentes de consulta ........................................................................................................ 44
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 2
Unidad 3. Manipulación de datos mediante .NET
Presentación de la unidad
Bienvenido a la Unidad 3. Manipulación de datos mediante. NET. Aquí abordarás temas
relacionados con la interacción entre Visual Basic.NET y una base de datos.
En esta unidad se realizará una interacción entre VB .NET y una base de datos, para ello
revisarás cómo se utiliza la clase MySqlCient, la cual se conforma con librerías que
proporciona MySQL en .NET para trabajar con sus bases de datos, y MySqConnection
para realizar la conexión a una base de datos desde VB .NET. Se explicará la forma en
que es posible manipular datos con las clases MySqlcommand y MySqlDataAdapter, con
el fin de que se realice un formulario para interactuar con una base de datos creada en
MySQL.
Propósitos
Al término de esta unidad lograrás:
Examinar los requerimientos técnicos para desarrollar un caso práctico de
manipulación de datos mediante .NET.
Emplear la tecnología .NET y MySQL para desarrollar aplicaciones de escritorio, y
así dar solución a un problema de conexión de datos planteado.
Resolver problemas relacionados con el procesamiento de la información y la
automatización de procesos, para darles solución mediante una aplicación de
escritorio desarrollada con la tecnología MySQL y VB .NET.
Competencia específica
Implementar una aplicación de escritorio para interactuar con información
almacenada en una base de datos, utilizando los diferentes recursos de desarrollo
de software que proporciona la tecnología .NET.
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 3
3.1. Conexión con MySQL mediante. NET
La conexión a la base de datos de MySQL es uno de los aspectos más importantes
cuando se trabaja con grandes cantidades de información en aplicaciones de escritorio,
pero es importante considerar que establecer correctamente la comunicación entre el
origen de datos y los registros implican garantizar la seguridad y funcionamiento de la
base de datos con la aplicación.
En este tema se explicará cómo funcionan las clases MySql.Data.SqlClient y
MySqlConnection, ya que estas dos clases trabajan en conjunto para ejecutar la conexión
con la base de datos. La clase MySqlConnection hace referencia al controlador de
MySQL, que contendrá los datos necesarios para la conexión. MySql.Data.SqlClient
ejecutará las sentencias Sql y a la clase MySqlConnection.
En este tema se abordarán el procedimiento y los requerimientos para conectar una base
de datos con una aplicación en .NET. Conocerás los métodos y configuración necesarios
para establecer una conexión con la base de datos MySQL utilizando el conector para
.Net. MySqlConnector.
3.1.1 Clases MySql.Data.SqlClient
En este tema comprenderás la importancia del uso de la clase MySql.Data.SqlClient, ya
que contiene los métodos necesarios para poder realizar una conexión con el manejador
de base de datos MySQL. Sin el uso de MySql.Data.SqlClient no se podrá interactuar con
la base de datos de MySQL. El MySQL.Data.SqlClient contiene las clases que se utilizan
para crear una conexión básica con MySQL, que es el proveedor de datos de .NET
(MySQL, 2013e).
MySql.Data.SqlClient describe una colección de clases que son utilizadas para tener
acceso a la base de datos de MySQL. Éste permite rellenar un objeto DataSet residente
en memoria para consultar y actualizar la base de datos de MySQL.
Para hacer uso de estas clases contenidas en el MySQL.Data.SqlClient, se necesita
instalar el controlador de MySQL MySql Connector que se proporciona gratuitamente en
la página oficial de MySQL para Visual Basic. La forma de instalación se explicará en el
subtema 3.1.2. MysqlConnection.
Primeramente, se debe importar la clase MySql.Data.SqlClient para hacer uso del ODBC
(Open DataBase Connectivity), estándar para tener acceso a los datos de una aplicación
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 4
haciendo uso de cualquier gestor de base de datos, en este caso de MySql para Visual
Basic, y de esta manera hacer la conexión con la base de datos de MySQL.
A continuacion se muestra un ejemplo donde se hace uso de MySql.Data.SqlClient para
hacer una conexión con una base de datos de MySQL con el nombre de Alumnos.
Pantalla conexión de una base de datos de MySQL. Fuente: MySQL, 2013e.
En la imagen anterior se muestra un ejemplo donde se importa la clase
MySql.Data.SqlClient. Al importar esta clase se hace uso del conector de MySQL, así
como de la clase MySqlConnection, la cual contendrá los datos de nombre de servidor de
la base de datos, usuario, contraseña y el nombre de la base de datos que en este caso
es Alumnos.
Otras clases de MySql.Data.SqlClient utilizadas comúnmente en una conexión a la base
de datos son MySqlException y MySqlError.
MySqlException: se utiliza en el manejo de excepciones cuando se quiere recuperar un
erro en la conexión en base de tatos. Ejemplo:
Se importa la clase
MySql.Data.MySqlClient
Parámetros para la
conexión con la base de
datos
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 5
Uso de MySqlExcepton en una conexión a la base de datos. Fuente: MySQL, 2013e.
En el ejemplo anterior se hace uso de una excepción para que el programa siga corriendo
sin mostrar nada si llegara a ocurrir algún error durante la ejecución. Este código es para
conectarse con la base de datos y mostrar datos de una tabla.
MySqlError: permite recuperar una colección de errores que puede ser deltas por el
servidor. Ejemplo:
Uso de MySqlError en una conexión a la base de datos. Fuente: MySQL, 2013e.
En el ejemplo anterior se hace uso del mismo código que a diferencia de MySqlException.
Éste recupera el número de error que puede presentarse durante la ejecución del
programa.
La clase MySql.Data.SqlClient es de suma importancia cuando se desea hacer una
conexión con la base de datos de MySQL, ya que contiene los las clases necesarias para
comunicar los datos de un aplicación, así como recuperarlos y guardarlos en la base
de datos. MySqlCommand es la encargada de recibir y ejecutar sentencias SQL de la
base de datos, MySqlConnection establece la conexión a la base de datos ya que recibe
dos objetos, uno de tipo conexión y otro con la sentencia SQL. Por último,
MySqlDataAdapter se utiliza para interactuar con la base de datos para guardar y
actualizar datos, éstos se explicarán más delante.
MySqlException
MySqlError
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 6
3.1.2. MySqlConnection
En este subtema se abordará la funcionalidad del uso del objeto MySqlConnection, así
como la instalación necesaria del driver que proporciona gratuitamente MySQL para su
descarga e instalación, y que será utilizado junto con los objetos MysqlDataAdapter y
MysqlCommand; los cuáles revisarás en el tema 3.2 Manipulación de los datos.
La clase MySqlConnection hace una conexión única con la base de datos de MySQL,
que se utiliza comúnmente en combinación con MySqlCommand, MySqlDataReader,
MySqlDataAdapter (se explicarán más adelante, en los subtemas 3.2.1.
MysqlDataAdapter y 3.2.2 MySqlCommandt), o algún otro componente utilizado para la
interoperabilidad de MySQL. Un objeto MySqlConnection representa un origen de datos
de la base de datos de MySQL (Bell, 2012).
MySqlCommand: tiene la finalidad de ejecutar comandos SQL en la base de datos de
MySQL.
MySqlDataAdapter: permite recuperar, guardar o actualizar datos de a base de datos.
MySqlDataReader: funciona igual que MySqlDataAdapter, pero es utilizado cuando sólo
se desea leer datos de la base de datos; por ejemplo, cuando se hace uso de un
comando SQL como SELECT.
A continuación se explicarán los pasos necesarios para instalar y configurar el controlador
de MySql-Connector:
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 7
1. Descarga el driver en el sitio oficial de MySQL (2013a).
Página principal de descarga de MySQL-connector. Fuente: MySQL, 2013ª.
2. Instala el controlador de MySQL Connector.
Cuadro de diálogo de instalación de MySQL-Connector. Fuente: MySQL, 2013ª.
3. Selecciona la opción siguiente (Next) y espera unos minutos mientras termina el
proceso de instalación.
Si no quieres
suscribirte a otros
recursos, puedes dar
clic en esta opción y
descargar los drivers
de MySQL.
Da clic para
comenzar la
descarga.
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 8
4. Crea un nuevo proyecto en Visual Basic después de que se termine con el proceso de
instalación del MySQL Connector.
Pantalla de creación de nuevo proyecto
5. Una vez creado el proyecto, deberás agregar las referencias de las clases que acabas
de instalar, esto lo harás en el entorno de desarrollo Visual Studio 2010. En la barra de
menú deberás dar clic en la opción Project y seleccionarás la opción Add reference, tal
como lo muestra la imagen siguiente.
Pantalla selección de agregar referencia
5. Una vez que selecciones las opciones antes descritas se te mostrará una nueva
ventana. Ahí tendrás que seleccionar la pestaña que dice NET y, dentro de ella, deberás
buscar la opción que dice MySql.Data tal y como lo muestra la siguiente imagen.
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 9
Pantalla agregar referencia
6. Una vez que se agregó la referencia, se importa al código de VB .NET de la siguiente
manera:
Importación al código de la clase MySql.Data.MySqlClient
Las propiedades más utilizadas de MySqlConnection son las siguientes (MySQL, 2013b):
ConnectionString: integra la cadena de tipo String que son los parámetros que se
necesitan para conectarse con una base de datos de MySQL. Por ejemplo:
Se importa la clase
MySql.Data.MySqlClient
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 10
DataBase: recupera el nombre de la base de datos que se está utilizando
actualmente, o la que se use cuando la conexión esté abierta. Ejemplo:
DataSource: recupera el nombre del servidor de la base de datos de MySQL al que
se va a conectar. Ejemplo:
Una de las herramientas importantes que proporciona Visual Basic en su barra de
herramientas es DataGridView, que permite tener una interfaz visual de los datos que se
encuentra en una tabla de una base de datos. Permite visualizar y editar datos de la
base de datos de una forma más fácil.
Para poder utilizar un DataGridView es necesario dirigirse a la barra de herramientas de
Visual Basic, y después a la opción data como se muestra en la siguiente imagen:
Cadena que utiliza
ConnectionString
Puede utilizarse el nombre de
DataSource o Source. En este
ejemplo se utiliza Source.
El DataGridView se encuentra en la
barra de herramientas, para poder
agregarlos solamente hay que
arrastrar el componente al formulario
que se quiera utilizar.
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 11
Pantalla agregar un DataGridView
Finalmente, se muestra un ejemplo para visualizar los datos de una tabla que se
encuentra en una base de datos de MySQL:
En el siguiente ejemplo se expone un formulario con dos botones, uno para salir y otro
para mostrar los datos en un DataGridView:
Formulario con un DataGridView
Primeramente, se debe crear la conexión a la base de datos:
Se genera el código para que funcione el botón que realizará la acción de mostrar los
datos. Para ello se tiene el siguiente código:
Método para mostrar los datos
Nombre del botón
Botón para mostrar daos
DataGridView
Se importan las librerías necesarias para el
funcionamiento de la aplicación.
Se agregan los parámetros necesarios para
la conexión a la base de datos.
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 12
En el ejemplo anterior se creó un objeto dentro del evento del botón, el cual tiene la
finalidad de mandar a llamar el método cuando se le dé clic, y de esta manera sea
posible mostrar los datos en el DataGridView.
Para mostrar los datos se debe dar funcionalidad al método. Se manda la consulta de los
datos que se necesitan para que se muestren los de la tabla. El código queda de la
siguiente manera:
Programación del método mostrarDatos
Los métodos más usados para abrir y cerrar la conexión son los siguientes (MySQL,
2013d):
Open: abre una nueva conexión de la base de datos.
Close: cierra la conexión de la base de datos.
A continuación se muestra el ejemplo de un código utilizado para conectarse a una base
de datos de un servidor MySQL utilizando los métodos Open y Close:
Se crea la consulta SQL para mostrar los datos. En este caso la tabla se llama
empleados.
Se le mandan los objetos a MyDqlDataAdapter de la consulta y la
conexión.
El nombre que se le asignó al
DataGridView
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 13
Uso de MySQLConnectionString con los métodos Close y Open. Fuente: Línea de código. Lenguajes de
programación, 2011.
En conclusión el objeto MySqlConnection es muy importante para abrir y establecer
una conexión con la base de datos junto con sus propiedades. Por medio de
MySqlConnection String se configuran el nombre del servidor y de la base de datos,
entre otros parámetros, como se muestra en el ejemplo anterior. En el subtema 3.3.1.
Lectura de información mediante VB .NET se mostrará un ejemplo claro de estas clases y
métodos mediante una aplicación de Visual Basic.
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 14
Actividad 1. Mysql.Data.SqlClient
Realiza la actividad de aprendizaje siguiendo las instrucciones y las indicaciones de tu Docente en línea.
Actividad 2. MysqlConnection
Realiza la actividad de aprendizaje siguiendo las instrucciones y las indicaciones de tu Docente en línea.
3.2. Manipulación de datos
La manipulación de datos es uno de los aspectos más importantes que existe entre el
software y la base de datos, ya que interactuarán directamente con los datos que se
soliciten o se guarden en la base de datos. Estos datos tienen que ser procesados y
validados para su uso por medio de las clases MySql.Data.SqlClient y MySqlConnection,
como se mostró en los temas anteriores; después, para interactuar con la base de datos
se hace uso de MysqlAdapter y MysqlCommand, que llevarán el control de las sentencias
sql de MySQL.
En este tema se explicará la forma de uso de las clases necesarias para comunicar una
aplicación con el origen de datos, y así recuperar o guardar registros de una base de
datos que, en este caso, se trata de MySQL. Haciendo uso de MysqlDataAdapter y
MySqlCommand, se puede establecer el puente que comunicará los registros con el
origen de base de datos. Estos dos temas se verán a continuación, así como las clases y
métodos que conforman estos objetos.
3.2.1. MysqlDataAdapter
MysqlDataAdapter sirve como puente entre un conjunto de datos que se encuentran en la
base de datos para recuperar y guardar datos. El MySqlDataAdapter proporciona este
puente haciendo uso del método Fill, que significa agrega filas a DataSet. Esto quiere
decir que integra o actualiza filas para hacerlas coincidir con las del origen de datos,
utilizando los nombres de DataSet y DataTable, que son objetos que se utilizan para
manejar datos de la base de datos (MySQL, 2013d). Se utiliza la sentencia Select para
cargar los datos desde la base de datos y Update para cambiar los datos en el origen y
emparejarlos en un DataSet.
Programación NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 15
MySqlDataAdapter es utilizado en conjunto con Devart.Data.MySqlConnection (el cual lee
solamente una fila de una tabla de una base de datos) y MySqlCommand (para
aumentar el rendimiento cuando se realiza la conexión a una base de datos).
Otras funcionalidades e MySqlDataAdapter:
Llena un DataSet y, a su vez, crea las tablas y columnas necesarias para los datos
devueltos si aún no existen.
Utiliza propiedades de InsertCommand, SelectCommand, DeleteCommand y
TableMappings que ayudan a facilitar la carga de las actualizaciones de datos de una
base de datos.
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 16
A continuación se muestra un ejemplo del uso de InsertCommand, SelectCommand y DeleteCommand con
MySqlDataAdapter (MySQL, 2013d):
Ejemplo del uso de InsertCommand, SelectCommand y DeleteCommand. Fuente: MySQL, 2013d.
Uso de SelectCommand
Uso de InsertCommand
Uso de DeleteCommand
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 17
En el ejemplo anterior se hace uso de InsertCommand, SelectCommand y
DeleteCommand para insertar, seleccionar y eliminar datos, dependiendo de las
sentencias SQL que se utilicen, ya sea SELECT, DELETE o INSERT.
A continuación se realiza una descripción breve de estas propiedades de
MySqlDataAdapter (Bell, 2012):
InsertCommand: pone una sentencia de SQL o un procedimiento almacenado para
insertar registros de un DataSet.
SelectCommand: establece un procedimiento almacenado a una instrucción de
Transact-SQL, que selecciona registros del origen de datos.
DelecteCommand: consigue una sentencia SQL para eliminar datos de un data set.
TableMapping: proporciona un mapeo master entre una tabla fuente y un data table.
El método Fill refresca las filas en un DataSet del origen de datos usando el nombre del
DataSet, y puede crear un DataTable.
El siguiente es un ejemplo del uso de SqlCommand, SqlDataAdapter y SqlConnection,
este código selecciona registros de una base de datos y los rellena con un DataSet:
Ejemplo del uso de SqlCommand, SqlDataAdapter y SqlConnection. Fuente: Microsoft, MSDN, 2013c.
En el ejemplo anterior se obtiene los registros de una fila de una tabla que se encuentra
en la base de datos de MySQL por medio de un DataSet.
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 18
En conclusión, el MySqlDataAdapter es un puente que se utilizará para comunicar el
origen de datos, buscar y guardar datos de la base MySQL, para lo cual se utilizan
componentes como SqlConnection y SqlCommand. Este último se abordará más a detalle
en el siguiente capítulo.
Actividad 3. MysqlDataAdapter
Realiza la actividad de aprendizaje siguiendo las instrucciones y las indicaciones de tu Docente en línea.
3.2.2. MysqlCommand
MySqlCommand es una parte fundamental para abrir una conexión de base de datos, ya
que esta clase recibe, ejecuta las sentencias SQL y los parámetros necesarios para
establecer la conexión con la base de datos.
En este capítulo se abordará la función principal de MySqlCommand en la base de datos
de MySQL, así como los métodos utilizados para trabajar con los datos de una base
MySQL. MySqlCommand es una sentencia de SQL que se utilizará para ejecutar una
base de datos MySQL, los métodos que utilizan son los siguientes (Bell, 2012):
ExecuteReader: ejecuta comandos que devuelven filas. Ejemplo (MSDN, 2013b).
Ejemplo de uso del método ExecuteReader. Fuente: MSDN, 2013b.
Se crea un objeto SqlCommand y, a continuación, se ejecuta pasando dato de tipo string que es una instrucción de Transact-SQL, y otro dato de tipo string que se utiliza para conectarse a la fuente de datos.
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 19
ExecuteNonQuery: ejecuta comandos como SQL, INSERT, DELETE y UPDATE.
Ejemplo: (MDSN, 2013):
Pantalla Uso de ExecuteNonQuery. Fuente: MDNS, 2013d.
En este ejemplo se crea un objeto SqlCommand y, a continuación, se ejecuta mediante ExecuteNonQuery. Se pasa una cadena que es una instrucción de Transact-SQL (como UPDATE, INSERT o DELETE), y una cadena que se utiliza para conectar con el origen de datos.
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 20
ExecuteScalar: recupera un único valor de una base de datos. Ejemplo: se ejecuta una sentencia SQL donde se recupera
un valor (MSDN, 2013c).
Ejemplo del uso del método ExecuteScalar. Fuente: MSDN, Microsoft, 2013c.
Ejemplo del uso de MySqlCommand (MySQL, 2013c):
En el ejemplo se pasa una cadena de tipo String con la consulta SQL, que representa un nuevo valor que se va a insertar en una tabla; además, otra cadena se utilizará para conectar al origen de datos.
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 21
Pantalla implementación de MySqlCommand. Fuente: MySQL, 2013c.
En el siguiente ejemplo se utiliza el método ExecuteReader de MySqlCommand; el cual, en conjunto con MysqlConnection,
hace posible seleccionar filas de una tabla dentro de la base de datos:
Ejemplo del uso del MySqlCommand
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 22
En el ejemplo anterior se recuperan todos los datos de la columna Departamento de
la tabla Test de una base de datos de MySQL. MySqlCommand tiene la principal
función de ejecutar comandos SQL dentro de la base de datos. Las propiedades más
utilizadas con MySqlCommand son (MySQL, 2013c):
Connection: utiliza MySqlConnection. Usa una instancia de MySqlCommand.
CommandText: ejecuta una sentencia SQL en el origen de datos.
CommandTimeout: establece un tiempo de espera antes de mostrar o ejecutar una
orden de mensaje de error.
Parameters: ejecuta el MySqlParameterCollection.
El uso del MysqlCommand es indispensable para realizar operaciones sobre la base
de datos, ya que representa las sentencias SQL que se ejecutan en el servidor de
MySQL. Utiliza los métodos ExecuteNonQuery y ExecuteReader, que son capases
de ejecutar sentencias INSERT, DELETE y UPDATE; es decir, el uso de estas clases
es necesario para ejecutar sentencias SQL de MySQL de la base de datos de
MySQL.
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 23
Actividad 4. MysqlCommand
Realiza la actividad de aprendizaje siguiendo las instrucciones y las indicaciones de tu Docente en línea.
3.3. Implementación de la aplicación
Al implementar una aplicación de escritorio utilizando la tecnología VB .NET y
MySQL, le estarás dando solución a un problema que se presente, por ejemplo, en
alguna organización que desee automatizar los procesos que llevan a cabo día a día.
En este capítulo aprenderás, mediante un caso práctico, a darle solución a un
problema relacionado con alguna organización, y así aplicarás lo aprendido a través
de toda la asignatura.
El planteamiento de un problema ejemplo es el siguiente:
Una empresa requiere desarrollar un software para contar con un control de las
ventas diarias, pero una parte muy importante consiste en tener un control de los
usuarios que acceden al sistema. Para darle solución a este caso en específico, se
implementará un formulario en VB .NET que permita leer información (consultar) y
modificar (actualizar) usuarios de una base de datos, a la cual se nombrará
catálogos. Esta base de datos está desarrollada en MySQL. La tabla usuario, que es
específicamente la tabla que utilizará para este formulario, tiene los campos que se
muestran en la siguiente imagen:
Pantalla tabla usuario
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 24
La interfaz gráfica de usuario está desarrollada con VB .NET. Esta interfaz es la que
se muestra en la siguiente imagen. Como te podrás percatar, contiene los mismos
campos que la tabla usuario.
Imagen del cuadro de diálogo interfaz catálogo de usuarios
Las clases que te permitirán tener acceso a la base de datos MySQL desde .Net se
muestran más a detalle cómo instalarlas y agregar las referencias al entorno de
desarrollo en el subtema 3.1.1. Clase MySql.Data.SqlCliente.
En los siguientes subtemas aprenderás cómo realizar consultas, insertar registros y
modificar los de esta tabla, mediante una interfaz gráfica de usuario desarrollada en
Visual Basic .NET, utilizando el entorno de desarrollo Visual Studio 2010.
3.3.1. Lectura de información mediante VB .NET
Es muy importante hacer la lectura de información de una tabla de la base de datos,
por que con esto es posible traer todos los registros, o sólo el que se requiera
consultar de una tabla de alguna base de datos. Estas lecturas se realizan con la
sentencia SQL llamada SELECT.
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 25
Se entiende como lectura de información a la búsqueda de registros que existan
dentro de una tabla de base de datos. Como se mencionó anteriormente, esta lectura
de información se realiza mediante la sentencia SQL llamada SELECT; para leer la
información, esta sentencia “selecciona un conjunto de registros en la base [de
datos], o eventualmente un valor único que es resultado de un cálculo efectuado [por
una sentencia SQL SELECT] sobre valores contenidos en la base [de datos]”
(Groussard, 2011, p. 399).
En este subtema aprenderás a realizar una búsqueda o lectura de información
contenida en un tabla de base de datos, médiate los objetos y las clases que has
aprendido a lo largo de este curso.
Para realizar una búsqueda se observará cómo trabajan juntos el objeto DataAdapter
y el DataSet, así como MySqlCommand. Es de suma importancia que estés
familiarizado teóricamente con estos términos, ya que aquí aprenderás cómo se
llevan a la práctica realizando un formulario en VB .NET.
Como se muestra en la siguiente imagen, hay un componente Button que tiene por
nombre Mostrar, este botón es el que llevará a cabo la lectura de información y así
se hará posible procesar la que se encuentra dentro de la base de datos desde VB
.NET. A continuación se muestra cómo será el código que se ejecutará al dar clic en
el botón Mostrar, este código se encuentra en la siguiente imagen:
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 26
Pantalla código VB .NET para leer información de la base de datos
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 27
Antes de explicar el código, recuerda que dando doble clic sobre el botón al que
quieras darle funcionalidad, en la vista de diseño se generará automáticamente el
método que se ejecutará cuando el usuario pulse este botón. Una vez realizado
esto, se insertará dentro del método que genere el botón el cual se desea que
ejecute; para efectos de este tema, será mostrar información o lectura de
información, la cual consiste en mostrar la información de un usuario cuyos datos se
encuentran dentro de la tabla Usuario.
La explicación del código que se muestra en la imagen anterior, se realizará
mediante la mención del número de líneas, estos números se encuentran en color
verde del lado izquierdo de la imagen.
En las líneas 6 a 9 se observa la creación de las variables que se van a ocupar para
realizar la lectura de información de la base de datos.
Línea 6: se crea la variable que tendrá la consulta SQL que se va a ejecutar.
Línea 7: se crea la variable que realizará la conexión con la base de datos.
Línea 8: se crea el DataAdapter, que irá a la base de datos a ejecutar la consulta
SQL para la lectura de información.
Línea 9: se integra el DataSet. Tendrá la información que regrese el DataReader
para manipular la información desde .NET.
Pantalla del código para leer información de la base de datos líneas 6 a 9
Recuerda que todo lo que se realiza después se mete en un bloque TRY CATCH, ya
que si hay algún error en las líneas de código dentro del bloque TRY, el CATCH lo
atrapará y dirá qué tipo de error se generó al ejecutar el bloque TRY. Esto es manejo
de excepciones, como se observa en la siguiente imagen:
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 28
Pantalla del código para leer información de la base de datos líneas 10 al 37 bloque TRY CATCH
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 29
Línea 12: en el objeto de conexión se llama a la propiedad ConnectionString, y se le
asignan los valores de la base de datos a la cual se desea conectar. El código se
muestra en la siguiente imagen.
Pantalla del código para leer información de la base de datos línea 12 ConnectionString
Líneas 13 y 29: se hace una validación, la cual consiste en que si el componente
TextBox, que contiene la clave de usuario, no está vacío se continua con el flujo; en
caso contrario, se mandará un mensaje al usuario especificándole que este campo
se encuentra vacío, como se muestra a continuación:
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 30
Pantalla del código leer información de la base de datos líneas 13 y 29
Línea 15: si el flujo continúa, en la línea 15 se llena la variable sql que se creó en la línea 6. Esta variable contendrá la
consulta SQL que se desea ejecutar, en este caso se hace un select de todos los campos que contenga la tabla usuario,
donde el campo id_usuario sea igual al dato que seleccionó el usuario en el componente TextBox Clave usuario. Esto se
muestra en la siguiente imagen:
Pantalla del código leer información de la base de datos línea 15 TextBox
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 31
Línea 16: se abre la conexión con el código que se muestra en la imagen siguiente:
Pantalla del código leer información de la base de datos línea 16 abrir la conexión
Línea 17: Se crea el objeto DataAdapter y se le envían dos parámetros: la variable
sql a la que se le asignó valor en la línea 15 y que contiene la consulta; y la variable
de conexión, la cual ya contiene la cadena de conexión que se hizo en la línea 12 y
ya se encuentra abierta para realizar las consultas dentro de la base de datos
Catálogo. El código se muestra a continuación:
Pantalla del código leer información de la base de datos línea 17 creación del objeto DataAdapter
Línea 18: se limpia el DataSet. Esto se hace con el fin de que si ya se había
realizado alguna consulta anteriormente, este objeto se quede guardado en memoria
con los datos de la consulta previamente realizada, así que es muy importante limpiar
este objeto como se muestra a continuación:
Pantalla del código leer información de la base de datos línea 18 limpia del DataSet
Línea 19: una vez que se ejecutó el DataAdapter, el resultado de los datos se
almacenan en memoria. Para manipular estos datos en VB .NET se tiene que llenar
el DataSet con los del objeto DataAdapter. Al método Fill se le darán como
parámetros el DataAdapter y el nombre de tabla de la consulta que se ejecutó, que
para este caso sería la tabla Usuario. Este código se muestra a continuación:
Pantalla del código leer información de la base de datos línea 19 llenado del DataSet.
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 32
Líneas 20 al 29: se realiza una validación, la cual consiste en contar el número de filas que contiene el DataSet. Si el
resultado es mayor que cero, quiere decir que la consulta que se realizó con el DataAdapter regresó resultados; en caso
contrario, se enviará un mensaje al usuario especificándole que no hay registros para mostrar. Estos pasos observan en
la siguiente imagen:
Pantalla del código leer información de la base de datos líneas 20 a 29 validación
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 33
Líneas 22 a 26: si el resultado anterior es mayor a 0 se procederá a llenar cada
componente TextBox con el valor que le corresponde, y así hacer visibles los datos al
usuario en el formulario. Se realiza llamando a la propiedad DataBindings y dentro
de este con la propiedad add, la cual recibe tres parámetros: el primero es Text, fijo y
constante, es decir, siempre será igual; el segundo es DataSet, debe contener los
datos; el tercero es un String, con el nombre de la tabla, un punto y enseguida en el
mismo String el nombre de la columna de la tabla que tenga el dato que se desee
poner en el TextBox correspondiente. Estos pasos se muestran en la siguiente
imagen.
Pantalla del código leer información de la base de datos líneas 22 a 26 llamando a la propiedad
DataBindings
Por último, los datos se mostrarán en el formulario, como se observa en la siguiente
imagen:
Imagen de pantalla Usuario con información traída de la tabla usuario
En este capítulo aprendiste cómo leer información de la base de datos, mediante una
consulta y abriendo la conexión desde .NET. También se explicó cómo trabajan
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 34
juntos los objetos DataAdapter y DataSet, para traer información de la base de datos,
manipularla desde .NET y, por último, asignar los valores de este DataSet a lo
componentes TexBox, para mostrar estos resultados al usuario por medio del
formulario. En el siguiente capítulo aprenderás cómo actualizar los datos de una
base de datos MySQL, que en este caso será Catálogos, en su tabla usuarios
desde VB .NET.
3.3.2. Actualización de una base de datos MySQL mediante VB
.NET
Cuando se habla de actualización de una base de datos, se hace referencia al uso de
la sentencia UPDATE, “la instrucción Update [es la que permite] no solo actualizar
una columna en una fila o varias filas de una tabla en la base de datos sino que
también le permite actualizar varias filas columnas a la vez” (Hawthorne, 2002, p.
114). La sentencia UPDATE permite actualizar un registro que ya existe dentro de la
base de datos, es decir, un registro que se haya insertado dentro de una tabla en la
base de datos mediante la sentencia INSERT.
En este subtema aprenderás a realizar esta acción mediante un botón de acción en
el formulario Catálogo de usuarios, modificando la tabla Usuario que se encuentra
en la base de datos Catálogos, la estructura de esta tabla la podrás observar en la
siguiente imagen Pantalla tabla usuario.
Pantalla Tabla usuario
Lo primero que se tiene que hacer es seleccionar un registro de la base de datos,
recuerda que para actualizar algo en la base de datos debe existir, así es que se
seleccionará un registro de la tabla existente. Una vez que se modifiquen los datos
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 35
del usuario en el Catálogo de usuarios se dará clic en el botón modificar, el cual
enviará al método que contiene el código correspondiente para realizar la
actualización de los datos en la tabla Usuarios.
El código para realizar la actualización desde .NET es el que se muestra en la
siguiente imagen:
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 36
Código para actualizar registro de la tabla usuarios
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 37
Ahora se explicará la forma en que funciona este código, el cual abrirá la conexión
con la base de datos para posteriormente Actualizar los campos de un registro con
la sentencia SQL UPDATE y, al igual que en el anterior capítulo, se hará mención al
número de línea que se encuentran del lado izquierdo en color verde.
De la línea 68 a la 70 se hace la declaración de variables para posteriormente
ocuparlas.
Línea 68: se crea la variable de tipo String llamada sql, la cual contendrá la consulta
que se quiere ejecutar en la base de datos.
Línea 69: se crea el objeto conexión de tipo MySqlConnection, en el cual se abrirá la
conexión con la base de datos que se desee conectar.
Línea 70: se crea el objeto myCommand de tipo MySqlCommand, el cual realizará la
consulta UPDATE en la base de datos. El código se muestra en la imagen siguiente:
Código actualizar registro de la tabla usuarios líneas 68 a 70
Recuerda que todo lo que se realiza después, se integra en un bloque TRY CATCH.
Si hay algún error en las líneas de código que se realicen dentro del bloque TRY, el
CATCH atrapará el error y te mencionará o hará referencia acerca de qué tipo de
error se generó al ejecutar el bloque TRY. Esto que aquí se menciona lo aprendiste
de tus asignaturas de programación anteriores en el tema manejo de excepciones, y
se muestra en la imagen siguiente:
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 38
Pantalla actualizar registro de la tabla usuarios líneas 71 a 86
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 39
En la línea 72 en el objeto de conexión se llama a la propiedad ConnectionString y se le asignan los valores de la base de
datos a la cual se desea conectar. El código se muestra en la siguiente imagen.
Código actualizar registro de la tabla usuario líneas 71 a 86 TRY CATCH
Línea 73: se hace una validación que consiste en que si el componente TextBox que contiene la clave de usuario no está
vacío, se continúa con el flujo ya que por el id_usuario se seleccionará al usuario que se desea actualizar, en caso
contrario se mandará un mensaje al usuario especificándole que este campo se encuentra vacío, tal y como se muestra a
continuación:
Código actualizar registro de la tabla usuarios línea 73 Validación
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 40
Líneas74 y 75: si el campo clave usuario en el formulario no está vacío, se le asignará un valor a la variable sql
previamente creada. Éste será una sentencia UPDATE de todos los campo del formulario, donde el campo id_usuario sea
igual a lo que tenga el campo clave de usuario en el formulario, el código se muestra a continuación:
Código actualizar registro de la tabla usuarios líneas 74 y 75 asignación de valor a la variable sql
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 41
Línea 76: se abre la conexión con el código que se muestra a continuación:
Código actualizar registro de la tabla usuarios línea 76 abrir la conexión con el código
Línea 77: en la línea se llama al objeto creado myCommand y se le envían dos
parámetros: la variable sql que contiene la consulta, y la variable de conexión la cual
ya contiene la cadena de conexión que se hizo en la línea 72, y se encuentra abierta
para realizar las consultas dentro de la base de datos Catálogo. El código se
muestra a continuación:
Código actualizar registro de la tabla usuarios línea 77 llamar al objeto creado
Línea 78: posteriormente, en la línea 78, ya que el objeto tiene la conexión y la
consulta, se tiene que ejecutar manualmente para que se lleve a cabo la sentencia
UPDATE dentro de la base de datos. El código para realizar eso se muestra a
continuación:
Código actualizar registro de la tabla usuarios línea 78 llamar al objeto creado
Línea 79: por último, en la línea 79, si todo salió bien, se le manda un mensaje al
usuario de que los datos que ingresó en el formulario fueron actualizados
correctamente, como se muestra en la siguiente imagen:
Código actualizar registro de la tabla usuarios línea 79 ejecución del objeto
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 42
Para el caso de insertar registros, no es necesario abarcar otro capítulo ya que es exactamente el mismo código que para
actualizar un registro en la base de datos, sólo cambia la consulta SQL. Para que puedas observarlo se muestra el código
a continuación:
Pantalla código para Insertar datos en la tabla usuario
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 43
En conclusión, con este tema se implementaron tres funciones básicas en un
formulario las cuales son: seleccionar, actualizar e insertar registros desde un
formulario a una tabla de una base de datos que, en este caso, fue a la tabla usuario.
También se explicó la implementación de la clase MySqlCommand y todos los temas
referentes a conexión de base de datos mediante VB .NET, vistos en las dos
anteriores unidades.
Autoevaluación
Realiza la autoevaluación para que puedas analizar el avance que has tenido y
detectar las áreas de oportunidad respecto al estudio de la tercera unidad.
Evidencia de aprendizaje. Manipulación de datos
Realiza la Evidencia de aprendizaje siguiendo las instrucciones y las indicaciones de tu Docente en línea.
Autorreflexiones
Además de enviar tu trabajo de la evidencia de aprendizaje, ingresa al foro
Preguntas de Autorreflexión y consulta los cuestionamientos que tu Docente en
línea presente, a partir de ellos elabora tu autorreflexión.
Posteriormente, envía tu archivo mediante la herramienta Autorreflexiones.
Cierre de unidad
En esta unidad se abordaron los temas que tienen como finalidad que desarrolles
una aplicación con base en las tecnologías VB. NET y MySQL. También se estudió la
forma como se lleva a cabo una conexión ConMySQL mediante .NET, a partir de las
clases MySql.data.SqlClient y MySqlConnection.
También se expuso la forma de manipular datos desde .NET, mediante el
MySqlDataAdapter, el cual permite guardar los datos que hayas consultado desde
.NET en memoria, para después ocuparlos y mostrarlos en un formulario, así como
realizar consultas SQL desde .NET hacia una tabla de una base de datos creada en
MySQL con la clase MySqlCommand.
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 44
Por último, se expuso un ejemplo de implementación de todos los elementos que
aprendiste a través de la asignatura Programación .NET III, donde se observó cómo
se le dio solución a un planteamiento de un problema mediante la lectura de
información, actualización de datos con VB .NET, y la realización de un formulario.
Es importante continuar con la práctica de lo aprendido en esta asignatura y
profundizar en el conocimiento de .NET, pues es uno de los lenguajes más utilizados
en las consultoras que se dedican al desarrollo de software. Es necesario que
puedas dominar esta herramienta para usarla en tu vida profesional.
Para saber más
El sitio que Microsoft proporciona a los desarrolladores .NET encontrarás más
información a detalle de los componentes y del lenguaje VB .NET en la página de
Microsoft Developer Network:
http://msdn.microsoft.com/es-mx/
En el foro Stack Overflow, puedes consultar diversas dudas sobre componentes y
código de Visual Basic. El sitio está en inglés, puedes apoyarte de algunos
traductores que se encuentran en Internet para traducir las respuestas que obtengas
a las dudas que compartas en este foro. Su página es la siguiente:
http://stackoverflow.com/search?q=Visual+Basic
En la página de MySQL, encontrarás todo lo referente al uso de las clases MySQL
http://www.mysql.com/
Fuentes de consulta
Bell, C. (2012). Expert MySQL. Montrial: apress.
Groussard, T. (2011). C# 4 los fundamentos del lenguaje desarrollar con
VisualStudio 2010. Barcelona: Ediciones ENI.
Hawthorne, R. (2002). Desarrollo de base de datos en SQL Server. México:
Pearson Educacion.
Línea de código. Lenguajes de programación (2011). Net Conexión MYSQL y
C#. Recuperado de http://lineadecodigo.com/dotnet/conexion-mysql-y-c-vs-
2005/
Programación .NET III Unidad 3. Manipulación de datos mediante .NET
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 45
MSDN Microsoft Developer Network (2013a). Sq lCommand Clas.
Recuperado de http://msdn.microsoft.com/en-
us/library/system.data.sqlclient.sqlcommand%28v=vs.110%29.aspx
MSDN Microsoft Developer Network (2013b). SqlCommand.ExecuteReader
Method. Recuperado de http://msdn.microsoft.com/en-
us/library/9kcbe65k(v=vs.110).aspx)
MSDN Microsoft Developer Network (2013c). SqlCommand.ExecuteScalar
Method. Recuperado de http://msdn.microsoft.com/en-
us/library/system.data.sqlclient.sqlcommand.executescalar(v=vs.110).aspx).
MSDN Microsoft Developer Network (2013d). SqlDataAdapter (Clase).
Recuperado de http://msdn.microsoft.com/es-
es/library/system.data.sqlclient.sqldataadapter%28v=vs.110%29.aspx
MySQL (2013a). Begin Your Download mysql-connector-net-6.7.4.msi.
Recuperado de http://dev.mysql.com/downloads/file.php?id=413555
MySQL (2013b). Class MySqlConnection Constructor (Default). Recuperado
de http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-
mysqlconnection.html#connector-net-examples-mysqlconnection-defctor
MySQL (2013c). MySqlCommand. Recuperado de
http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-
mysqlcommand.html):
MySQL (2013d). MySqlDataAdapter. Recuperado de
http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-
mysqldataadapter.html
MySQL (2013e). MySql.Data.MySqlClient. Recuperado de
http://dev.mysql.com/doc/refman/5.1/en/connector-net-ref-mysqlclient.html
MySQL (2013f). MySql.Data.MySqlClient NamespaceNamespace hierarchy.
Recuperado de http://dev.mysql.com/doc/refman/5.1/en/connector-net-ref-
mysqlclient.html