Vous êtes sur la page 1sur 26

Programacin NET III

Unidad 1. Conexin con bases de datos en .NET

Ingeniera en Desarrollo de Software


Semestre 6

Programa de la asignatura:
Programacin NET III

Unidad 1. Conexin con bases de datos en .NET

Clave:
15143632

Universidad Abierta y a Distancia de Mxico

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 0


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

ndice

Unidad 1. Conexin con bases de datos en .NET .............................................................. 2


Presentacin de la unidad ................................................................................................. 2
Propsitos.......................................................................................................................... 2
Competencia especfica..................................................................................................... 3
1.1. Tecnologas .NET de acceso a datos.......................................................................... 3
1.1.1. OLE DB.................................................................................................................... 3
1.1.2. ADO ......................................................................................................................... 6
1.1.3. ADO .NET ................................................................................................................ 7
1.2. Recuperacin y modificacin de datos mediante ADO.NET ...................................... 12
1.2.1. DataReaders .......................................................................................................... 12
1.2.2. DataAdapters ......................................................................................................... 15
1.2.3. DataSets ................................................................................................................ 16
Actividad 1. Acceso a datos ............................................................................................. 19
1.3. Anlisis de requerimientos ........................................................................................ 19
1.3.1 Anlisis del caso de estudio .................................................................................... 20
Actividad 2. Tecnologas de acceso a datos mediante .NET ............................................ 21
1.3.2 Diseo de base de datos relacional ........................................................................ 21
Autoevaluacin ................................................................................................................ 23
Evidencia de aprendizaje. Conexin con bases de datos en .NET................................... 23
Autorreflexiones ............................................................................................................... 23
Cierre de la unidad .......................................................................................................... 24
Para saber ms ............................................................................................................... 24
Fuentes de consulta ........................................................................................................ 25

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 1


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Unidad 1. Conexin con bases de datos en .NET

Presentacin de la unidad

Bienvenido(a) a la primera unidad de la asignatura Programacin .NET III, en la cual


abordars temas relacionados con la conexin de bases de datos en .NET, seguramente
recordars que las operaciones fundamentales de todo programa son la recuperacin,
generacin y almacenamiento de informacin, pues bien, para lograr que estas acciones
sean llevadas a cabo por los programas es necesario contar con mecanismos de
conexin a fuentes de informacin que comnmente son bases de datos y/o archivos de
configuracin. Por lo tanto, en la presente unidad se explicarn las diferentes opciones
con las que cuenta la tecnologa .NET para desarrollar conexiones con bases de datos, lo
cual tiene el propsito de aportar a tu formacin profesional como desarrollador de
software, el poder realizar una conexin entre una aplicacin .NET y una base de datos
especficamente empleando MySQL como sistema gestor de bases de datos.

Esta unidad contempla los conceptos y operaciones necesarias para establecer


conexiones entre un programa y una base de datos, con el fin de poder gestionar y
procesar informacin.

Propsitos

En esta unidad logrars:

Identificar los conceptos bsicos de una conexin en .NET para poder aplicar esta
tecnologa en proyectos de procesamiento y gestin de la informacin.

Identificar las operaciones que se pueden realizar a una base de datos mediante
un programa de conexin en .NET.

Conectar un programa .NET con una base de datos MySQL.

Recuperar y modificar informacin de una base de datos MySQL con .NET.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 2


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Competencia especfica

Conectar componentes de software a una base de datos para realizar el proceso de


gestin de informacin, aplicando los procedimientos que la tecnologa .NET proporciona.

1.1. Tecnologas .NET de acceso a datos

Cuando se requiere desarrollar algn componente de software (sistema, aplicacin,


programa, etctera) es comn que surja la necesidad de contar con algn medio de
almacenamiento de informacin. Usualmente este requerimiento se cubre con bases de
datos y un manejador o sistema gestor de bases de datos (si necesitas recordar lo que es
un sistema gestor de bases de datos, revisa las asignaturas Diseo de bases de datos y
Administracin de bases de datos) como SQL Server, MySQL, Postgres, etctera.

Se puede decir que el acceso a datos consiste en establecer una conexin entre dicho
componente de software y el medio de almacenamiento de informacin (Gmez, 2010).
Una vez que se ha realizado esta conexin es posible realizar operaciones de gestin de
informacin tales como:
Crear (altas)
Borrar (bajas)
Actualizar (cambios)
Recuperar (leer)

Cada lenguaje de programacin cuenta con diferentes tecnologas llamadas de acceso a


datos mediante las cuales es posible establecer conexiones entre el software y un origen
de datos. En esta materia se abordarn las opciones que Microsoft ofrece para trabajar
con Visual Basic .NET y MySQL.

1.1.1. OLE DB

OLE DB (Object Linking and Embedding for Databases) es una tecnologa de acceso a
datos desarrollada por Microsoft cuyo objetivo es unificar el acceso a la informacin,
considerando que sta puede estar en diferentes recursos como bases de datos o
archivos de diferentes tipos. Esta tecnologa se caracteriza por ser capaz de separar los
datos de la aplicacin donde se encuentran contenidos, esto se basa en el fundamento de
que las aplicaciones necesitan acceso a diferentes orgenes de datos y no requieren
conocer las funcionalidades especficas de cada origen.
(MSDN, 2013 c)

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 3


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Microsoft propone un modelo simple pero muy poderoso de acceso universal a los datos
UDA (Universal Data Access), a qu hace referencia este concepto? Para responder a
este cuestionamiento es necesario situarse en un ambiente organizacional, donde la
informacin es obtenida desde diferentes medios como archivos, hojas de clculo, bases
de datos e incluso del correo electrnico.

La problemtica inicial para el planteamiento de una conexin de datos consiste en la


necesidad de consolidar todas estas fuentes de informacin en un slo sistema gestor de
base de datos (si requieres recordar qu es un sistema gestor de bases de datos, revisa
la asignatura Administracin de bases de datos), desde donde cada rea de la
organizacin pueda acceder a la informacin que necesita de manera oportuna y segura.
Implementar el sistema antes mencionado puede llegar a ser un proceso bastante
costoso, donde muy probablemente se necesitar mucho tiempo en su desarrollo y
optimizacin para cubrir eficientemente los requerimientos de la organizacin.

Como solucin a estos inconvenientes, Microsoft propone el acceso universal a los datos.
Este modelo comprende dos grandes caractersticas (MSDN, 2013 e):

Consulta distribuida: Se refiere a que es capaz de homogeneizar el acceso a los


datos, ya sean del mismo tipo o no. En otras palabras, permite ejecutar una misma
consulta en cualquier fuente de datos y obtener los mismos resultados.

Acceso no DBMS (Data Base Management System): Se refiere a que es posible tener
acceso a orgenes de datos que no son manejadores de bases de datos (para
recordar qu son los manejadores de bases de datos revisa las asignaturas
Diseo de bases de datos y Administracin de bases de datos). Por ejemplo: emails,
sistemas de archivos, hojas de clculo y/o aplicaciones de administracin de
proyectos.

Para comprender mejor el alcance de este modelo, ve el siguiente planteamiento:

Lily es la gerente de ventas de una importante empresa constructora y necesita buscar


todos los correos electrnicos enviados por los prospectos de un determinado desarrollo
habitacional durante el ltimo trimestre.

Este requerimiento puede ser solucionado si se realiza una bsqueda en el correo


electrnico de Lily (Outlook), para obtener los mensajes y para conocer la informacin del
prospecto, otra bsqueda se puede realizar en la tabla prospectos de una base de datos
(Oracle). De las aplicaciones mencionadas en el ejemplo, Oracle es un DBMS, pero
Outlook no.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 4


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

OLE DB permite desarrollar aplicaciones que sean capaces de obtener informacin de


diferentes fuentes de datos, mediante elementos consumidores y proveedores que se
exponen a continuacin.

Consumidores y proveedores
El modelo que emplea OLE DB se basa en consumidores y proveedores, donde un
consumidor es todo aquel elemento de software (programa) que realiza solicitudes de
datos y un proveedor es aquel elemento de software (programa) que responde a dichas
solicitudes entregando la informacin solicitada. Como regla general, cada llamada o
peticin realizada por los consumidores debe estar implementada en el proveedor.

De manera tcnica, es posible decir que un consumidor es todo aquel sistema, aplicacin
o programa que tiene acceso a los datos por medio de interfaces OLE DB. Es posible
definir a los proveedores como todo aquel componente de software que implementa
interfaces OLE DB para encapsular el acceso a los datos para enviarlos a los
consumidores (MSDN, 2013 a).

En la prctica, un ejemplo de consumidor es la pgina web que muestra tus calificaciones,


mientras que el proveedor es aquel programa que realiza la consulta y presenta el
resultado.

Objetos OLE DB

Los objetos que conforman la tecnologa de conexin o el modelo de OLE DB se


clasifican en las siguientes categoras:

Tipo Nombre Funcin


Orgenes de datos Permite establecer una conexin a un origen
de datos (ej. archivos o bases de datos).

Crea y gestiona la conexin mediante la


informacin adecuada de permisos (nombres
de usuario y passwords).
A. Conexin
Crea una o varias sesiones.

Sesiones Controla la interaccin que tiene lugar con el


origen de datos para su consulta y
recuperacin.

Cada sesin es una transaccin.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 5


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Crea uno o varios comandos.

Comandos Ejecutan un comando de texto (ej. una


instruccin SQL).

Son enviados por un consumidor a un objeto


de origen de datos para su ejecucin.

Comnmente son instrucciones SELECT y


crean conjuntos de filas.
Descriptores de Describe cmo estn almacenados los datos
accesos en el consumidor.

Transacciones Agrupan una serie de actualizaciones que van


a ser registradas en un origen de datos, con
el objetivo de que todas se realicen
B. Procesamiento exitosamente y sea confirmada su ejecucin.

Cuando una de estas instrucciones falle, se


puede cancelar toda la transaccin.

Garantiza la integridad del resultado en el


origen de datos.
Basado en MSDN, 2013 a

En el tema 1.1.3. ADO.NET se abordarn a detalle las caractersticas de estos objetos.

1.1.2. ADO

La tecnologa ADO (Microsoft ActiveX Data Objects) permite a las aplicaciones el acceso
a datos de un servidor de base de datos y su manipulacin a travs de un proveedor
OLE DB (MSDN, 2013 d).

Las principales ventajas que ofrece ADO a los desarrolladores son:


Facilidad de uso
Alta velocidad
Bajo nivel de consumo de memoria
Poca ocupacin de espacio en disco

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 6


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Esta tecnologa puede ser empleada por ambientes Windows (Visual Basic, C++) y en
ambientes Web (ASP).

Con el empleo de esta tecnologa es posible recuperar, editar, insertar o eliminar


informacin almacenada en bases de datos. De igual manera, permite realizar tareas
administrativas sobre la estructura de la base de datos, como crear nuevas tablas,
alterar la estructura de las tablas existentes e incluso eliminarlas.

Componente Funcin
Recordset Maneja un conjunto de registros de la base de datos. Cada recordset
puede ser generado por una o varias tablas de la base de datos. Este
componente tiene la capacidad de recorrerse entre sus elementos en
todas direcciones: al siguiente o anterior registro as como al ltimo o al
primero.
Command Enva instrucciones SQL para ser ejecutados en la base de datos. Los
comandos permiten insertar nuevos registros as como editarlos o
eliminarlos. Entre las instrucciones SQL que se efectan con Command
tambin se incluyen aquellas que permiten recuperar la informacin.
Selects y sus criterios o filtros.
Connection Establece la conexin con la base de datos. En esta conexin se
intercambian los datos y las operaciones a realizar sobre la base de
datos. Emplea al proveedor OLE DB cuando se tratan de bases de
datos nativas de Windows y ODBC si se trata de otro tipo de bases de
datos.
DataProvider Se encarga de conectar directamente con el tipo de base de datos al
que pertenece. Por cada tipo de base de datos se debe implementar el
DataProvider especfico de dicho tipo. En otras palabras, cada
manejador cuenta con su propio DataProvider.
Principales componentes ADO. Basado en MSDN, 2013 d

1.1.3. ADO .NET

ADO .NET es una tecnologa para el acceso y gestin de datos desarrollada por Microsoft
(si necesitas recordar lo que es la gestin de datos, revisa la asignatura Administracin de
bases de datos). Est conformada por un conjunto de clases que ofrecen servicios de
acceso a datos y componentes para la creacin de aplicaciones de uso compartido. Las
fuentes de datos de esta tecnologa comprenden:
Bases de datos relacionales
XML
Aplicaciones

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 7


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Esta tecnologa permite que cualquier aplicacin que consuma datos pueda conectarse
al origen de datos que requiera, recuperarlos, gestionarlos y actualizarlos
adecuadamente. El modelo de ADO .NET separa el acceso de los datos de su
manipulacin, de tal manera que los datos pueden procesarse directamente en su fuente
o manipularse en la memoria mediante un DataSet (se explicar ms adelante las
caractersticas de un DataSet).

Esta tecnologa ADO.NET es el modelo que utiliza .NET para el acceso a orgenes de
datos como SQL Server y XML de forma nativa y a otros orgenes a travs de OLE DB y
ODBC.

Segn Gmez (2010), ADO .NET ofrece las siguientes ventajas:


Soporte nativo para XML.
Recorre fcilmente los elementos de un DataSet empleando el comando For Each.
Los DataAdapters pueden realizar consultas sobre distintas bases de datos al mismo
tiempo.
Permite trabajar offline creando una imagen de la base de datos en la memoria del
equipo del cliente; como se mencion anteriormente, el modelo ADO .NET permite
separar el acceso a datos, por eso, una vez que se cargan los datos trados de la base
de datos mediante un DataAdapter (se explica ms adelante las caractersticas de un
DataAdapter), se asigna a un DataSet, este ltimo es un objeto que se almacena en
memoria RAM con los datos que trajo el DataAdapter desde la base de datos, as aun
estando en modo offline los datos se pueden manipular ya que se guardan en
memoria gracias al DataSet.

Arquitectura de ADO .NET

Los principales componentes de ADO .NET son los proveedores de datos .NET
Framework y DataSet. Sus caractersticas son las siguientes:

Proveedores de datos .NET framework. Son objetos diseados para la manipulacin de


datos y el acceso rpido a datos de slo lectura y slo avance. Comprende los siguientes
objetos (Gmez, 2010):
CONNECTION: Proporciona la conexin al origen de datos.
COMMAND: Permite el acceso a comandos de bases de datos para devolver y
modificar datos, ejecuta store procedures y recupera informacin sobre parmetros.
DATAREADER: Proporciona el flujo de datos desde el origen de datos.
DATAADAPTER: Proporciona el enlace entre el DataSet y el origen de datos. Utiliza
a los objetos Command para ejecutar comandos SQL sobre el origen de datos.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 8


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Estos comandos cumplen dos funciones principales:

1. Cargar el DataSet con los datos obtenidos y

2. Sincronizar el origen de datos con las modificaciones realizadas sobre los datos.

DataSet. Su objetivo principal es tener acceso a los datos de manera independiente al


origen de stos. Permite su utilizacin con mltiples y distintos orgenes de datos. Se
compone por diferentes objetos que se estudiarn ms a fondo en el siguiente captulo.

En la siguiente figura se muestra la arquitectura de ADO .NET y la relacin que existe


entre un proveedor de datos .NET FRAMEWORK y un DATASET, donde los datos
obtenidos son colocados en un DataSet para que los usuarios puedan interactuar con
ellos rpidamente. Los datos que se cargan a un DataSet se encuentran desconectados
del origen de datos, mientras que los datos cargados en un DataReader s estn
conectados al origen de datos.

Flujo de datos
Flujo de datos
Flujo de datos

Basado en (Gmez, 2010, p. 139)

Proveedores de datos .NET Framework. Sirven para realizar las tareas principales del
procesamiento de datos:
a) Conectarse a una base de datos.
b) Ejecutar comandos.
c) Recuperar informacin.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 9


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

La siguiente tabla comprende los proveedores de datos incluidos en .NET Framework,


seguida de la tabla donde se muestran los objetos principales de los proveedores de
datos .NET Framework.

Proveedor de
datos.NET Espacio de nombres Descripcin
Framework
Proporciona acceso a datos para
SQL Server System.Data.SqlClient Microsoft SQL Server.

Para orgenes de datos que se


exponen mediante OLE DB (como
OLE DB System.Data.OleDb
Access).

Para orgenes de datos que se


ODBC System.Data.Odbc exponen mediante ODBC.

Para orgenes de datos de Oracle.


Oracle System.Data.OracleClient Versiones 8.1.7 y posteriores.

Proporciona acceso a datos para las


aplicaciones de Entity Data Model
EntityClient System.Data.SqlEntityClient
(EDM).

Proveedores de datos de .NET Framework (Gmez, 2010, pg. 140).

Objeto Descripcin Clase


Connection Establece una conexin a un DbConnection
origen de datos determinado.

Command Ejecuta comandos en un origen DbCommand


de datos.

DataReader Lee un flujo de datos de solo DbDataReader


avance y solo lectura desde un
origen de datos.

DataAdapter Ejecuta las actualizaciones DbDataAdapter


necesarias en el origen de
datos.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 10


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Transaction Incluye comandos en las DbTransaction


transacciones realizadas en el
origen de datos.

CommandBuilder Genera automticamente las DBCommandBuilder


propiedades de comando de un
DataAdapter

ConnectionStringBuilder Proporciona un modo sencillo DbConnectionStringBuilder


de crear y administrar los
contenidos de las cadenas de
conexin empleadas por los
objetos Connection.

Parameter Define parmetros de entrada y DbParameter


salida, as como los valores
devueltos para los comandos y
store procedures.

Exception Es devuelto cuando se detecta DbException


un error en el origen de datos

Error Contiene la informacin DbError


relacionada con advertencias o
errores devueltos por el origen
de datos.

ClientPermission Se proporciona para los DbDataPermission


atributos de acceso del cdigo
de los proveedores de datos.

Objetos de los proveedores de datos .NET Framework (Gmez, 2010, p. 140)

Con la explicacin de los objetos de proveedores de datos se concluye el tema 1.1


Conexin a bases de datos en .NET, en l se revisaron las generalidades y conceptos
bsicos que intervienen en el acceso a la informacin desde un componente de software
a una fuente de datos determinada. De igual manera se explic que las fuentes de
informacin no son nicamente bases de datos, sino tambin pueden ser archivos como
hojas de clculo, documentos XML o incluso correos electrnicos. En el siguiente tema se
abordar ms a fondo este proceso de recuperacin de informacin y conocers de qu
manera es posible realizar tareas de gestin sobre dichos datos.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 11


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

1.2. Recuperacin y modificacin de datos mediante ADO.NET

En este tema conocers a detalle la tecnologa propuesta por Microsoft para la obtencin
y gestin de informacin (ADO .NET). La importancia de aprender esta tecnologa radica
principalmente en que es muy comn encontrarse con la necesidad de obtener y trabajar
con datos que se encuentran en diferentes fuentes, como archivos o bases de datos;
mediante ADO.NET es posible desarrollar aplicaciones que trabajen con diferentes
orgenes de datos.

Es posible resumir el proceso de recuperacin y modificacin de datos con ADO .NET


siguiendo los siguientes pasos, mismos que se detallarn a continuacin:
1. Conectarse al origen de datos (archivos, bases de datos, etctera).
2. Cargar en memoria una representacin offline de los datos (DataSet).
3. Realizar las operaciones necesarias con los datos (consultas, actualizaciones)
(DataAdapter).
4. Sincronizar la base de datos offline con la base de datos origen (DataAdapter).

Los objetos que conforman ADO. NET se explicarn en los siguientes subtemas.

1.2.1. DataReaders

Como se mencion en los temas 1.2.1 DataSets y 1.2.2 DataAdapters, los DataSets
comprenden una representacin offline de los datos y en este tema se abordarn los
DataReaders que son una alternativa ms eficiente cuando no se requiere trabajar con
grandes volmenes de informacin o recurrencia de usuarios (Gmez, 2010).

En el supuesto caso de que un sistema requiera leer una gran cantidad de registros y que
esta peticin se realice por muchos usuarios de manera recurrente, si se carga esta
informacin en DataSets, se estar sobresaturando la memoria con muchos datos. Ante
este tipo de situaciones es ms eficiente emplear un objeto DataReader pues est
diseado para generar un flujo de slo lectura y slo hacia delante, de tal manera que
nicamente almacena un registro en memoria cada vez en el servidor.

Otro ejemplo donde un DataReader es ms eficiente est representado cuando se


requiere una consulta rpida como en un proceso de autenticacin, donde slo es
necesario extraer las credenciales de un usuario (login y password) sin realizar
operaciones adicionales sobre los datos.

La principal diferencia entre los objetos DataSets y DataReaders es que un DataSet


requiere mucho mayor consumo de memoria, pues adems de cargar toda la base de

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 12


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

datos, la puede recorrer hacia atrs y hacia adelante, mientras que un DataReader
nicamente lee y recorre los datos hacia adelante, registro por registro, consumiendo
menos recursos del servidor.

Cabe resaltar que en un DataReader se deben realizar ciertas funciones de manera


manual, como en el caso de las conexiones y la navegacin entre registros.

Para comprender mejor el funcionamiento del DataReader se explicar a continuacin


paso por paso y posteriormente su implementacin:
1. Se crea la conexin a la base de datos. Para el caso de SQL Server se emplea el
objeto SQLConnecction, para otras como MySQL se emplean OleDbConnection.
2. Se abre la conexin.
3. Se crea un objeto Command.
4. Desde el objeto Command se crea el DataReader.
5. Se invoca al objeto ExecuteReader.
6. Se emplea el objeto DataReader.
7. Se cierra el objeto DataReader.
8. Se cierra la conexin a la base de datos.

Ejemplo de implementacin de un DataReader

1. Dim strConn as String=data source=localhost; initial catalog=dbAlumnos;


2. Dim objConn as New SqlConnection(strConn)
3. Dim cmdTbProveedores as New Data.SqlClient.SqlCommand(Select * From
Alumno, objConn)
4. Try
5. objConn.Open
6. Dim dr as SqlDataReader
7. dr = cmdTbProveedores.ExecuteReader()
8. Do While dr.Read()
9. TextCta.Text = dr.Items(NumCta)
10. TextNombre.Text = dr.Items(Nombre)
11. TextPaterno.Text = dr.Items(APaterno)
12. Loop
13. dr.Close()
14. objConn.Close()
15. Catch (e as Exception)
16. MsgBox(e.message)
17. End Try

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 13


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Anlisis del cdigo


1. Se declara la variable que almacenar la cadena de conexin y se establece su
conexin strConn, en esta variable el data source es la direccin IP donde se encuentra
la base de datos (recuerda que si la base de datos est localmente se escribe localhost o
la direccin IP 127.0.0.1), y el initial catalog se refiere al nombre de la base de datos a la
cual se desea conectar, en este caso es Alumnos y la base de datos est instalado en
la misma computadora en la que se est programando en .NET, por ello se integra
localhost,:

Dim strConn as String=data source=localhost; initial catalog=dbAlumnos;


Dim objConn as New SqlConnection(strConn)

2. Se crea un objeto command:

Dim cmdTbProveedores as New Data.SqlClient.SqlCommand(Select * From


Alumno, objConn)

3. Se utiliza un controlador de excepciones Try, Catch o Finally para el proceso de


lectura de datos:

Try
objConn.Open
Dim dr as SqlDataReader
dr = cmdTbProveedores.ExecuteReader()

4. Mediante la estructura Do While se leen los datos y se cargan en un control TextBox:

Do While dr.Read()
TextCta.Text = dr.Items(NumCta)
TextNombre.Text = dr.Items(Nombre)
TextPaterno.Text = dr.Items(APaterno)
Loop

5. Se cierra el DataReader:

dr.Close()

6. Se cierra la conexin:

objConn.Close()

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 14


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

7. Se muestra la excepcin en caso de que se presente:

Catch (e as Exception)
MsgBox(e.message)
End Try

Si el resultado de este ejemplo no muestra alguna excepcin en el compilador que utilices


para desarrollar el Visual Basic, entonces sabrs que es la conexin correcta a la base de
datos a la cual te ests conectando que en este caso es la dbAlumnos.

En este subtema se expuso el uso del objeto DataReader para identificar en qu


situaciones es ms conveniente utilizar uno u otro modelo de recuperacin y modificacin
de datos. Es necesario que contines con el desarrollo de la unidad donde se explicarn
los dems modelos: DataAdapters y DataSets.

1.2.2. DataAdapters

Este tema comprende un objeto importante de la arquitectura de ADO .NET, el


DataAdapter, cuya funcin principal es rellenar un DataSet y efectuar actualizaciones en
el origen de datos. Este objeto DataAdapter est representado por un conjunto de
comandos SQL y una conexin de base de datos (Gmez, 2010). Se puede decir que un
DataAdapter habla el lenguaje de la base de datos, entonces a l se le solicita la consulta
que se desea hacer y la base de datos a la que se desea conectar. Ese DataAdapter
regresa datos trados directamente de la base de datos y estos, se almacenan en
memoria RAM pero no son datos entendibles por el .NET; para que el .NET entienda lo
que trajo el DataAdapter, el DataAdapter asigna a un DataSet, el cual traduce esos datos
y los hace visibles en .NET y se dice rellenar porque para que un DataAdapter asigne a
un DataSet se ocupa una funcin del DataSet llamada "fill" que en espaol significa llenar.

Para comprender mejor este proceso se explicar a continuacin paso por paso:

1. El DataAdapter establece una conexin con el origen de los datos. En este paso
tambin se crean y llenan las DataTables.

2. Se realizan las operaciones necesarias sobre los datos (insercin, modificacin o


eliminacin) de una DataRow.

3. Se hace un llamado al mtodo GetChanges para crear un segundo DataSet con los
datos modificados.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 15


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

4. Se hace un llamado al mtodo Update del DataAdapter con el segundo DataSet


como parmetro.

5. Se hace un llamado al mtodo Merge para sincronizar los datos del segundo
DataSet con los del original.

6. Se hace un llamado al mtodo AcceptChanges del DataSet para aceptar los cambios
o rechazarlos con RejectChanges.

Se puede decir que trabajando de manera conjunta, los DataSets y los DataAdapters se
lleva a cabo el proceso de recuperacin y modificacin de datos con ADO .NET.

El DataAdapter comprende las operaciones bsicas en bases de datos y se realizan con


las siguientes propiedades:
SelectCommand: Recupera filas del origen de datos (SELECT).
InsertCommand: Crea nuevas fila. (INSERT).
UpdateCommand: Actualiza las filas modificadas en el DataSet (UPDATE).
DeleteCommand: Elimina filas en el DataSet (DELETE).

En el siguiente subtema se explicar un ejemplo utilizando DataAdapters y DataSet.

1.2.3. DataSets

DataSet es un objeto esencial para trabajar con datos desconectados (offline) mediante
ADO .NET (Gmez, 2010). Es posible imaginar al objeto DataSet como una
representacin virtual almacenada en la memoria que proporciona un modelo de
programacin relacional independiente del origen de datos. Recuerda que es posible
utilizar muchos y distintos orgenes de datos como bases de datos, archivos XML, etc.
Esta representacin comprende tablas relacionadas, constraints y las relaciones
existentes entre las tablas.

A continuacin se enlistan los principales objetos contenidos en un DataSet:

DataTableCollection. Cada objeto DataSet contiene una coleccin de cero o ms objetos


DataTable los cuales representan una tabla, de tal manera que una DataTableCollection
contiene a todos los objetos DataTable.

Cada DataTable representa a una nica tabla de datos residentes en memoria y contiene
a su vez los siguientes elementos:

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 16


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Una coleccin de columnas que son representadas por la DataColumnCollection.

Una ConstraintCollection que almacena un conjunto de restricciones de operacin


sobre la tabla.

Una DataRowCollection que contiene los datos de la tabla. Es muy importante


mencionar que cada DataRow conserva su estado actual y original para detectar los
cambios efectuados a manera de control de cambios.

DataViews. Por medio de un DataView es posible presentar la informacin almacenada


en un DataTable de diferentes maneras o vistas. Esto es muy til debido a que cada
usuario o consumidor tiene diferentes necesidades para leer los datos mediante filtros u
ordenaciones.

DataRelationCollection. El objeto DataRelationCollection contiene a su vez objetos


DataRelation que representan relaciones entre las filas de un DataTable con otro
DataTable. Esto se logra debido a que cada DataRelation es capaz de identificar las
columnas coincidentes en dos tablas de un DataSet.
ExtendedProperties. Es una PropertyCollection donde se puede almacenar informacin
personalizada como las instrucciones SELECT que han generado el conjunto de datos o
la hora en la que se generaron esos datos.

Modelo de Objetos de un DataSet

Datasets de ADO.NET (MSDN, 2013 b)

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 17


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Implementacin de un DataAdapter y un DataSet

1. Dim dst as New DataSet


2. Dim strConn As String=data source=localhost; initial catalog=dbAlumnos;
3. Dim da As New SqlClient.SqlDataAdapter(Select * From tbAlumnos, strConn)
4. da.Fill(dst)

Anlisis del cdigo

1. Se declara una variable para el DataSet (dst):

Dim dst as New DataSet

2. Se declara la variable que almacenar la cadena de conexin y se establece su


conexin. En esta variable el data source es la direccin IP donde se encuentra la base
de datos (recuerda que si la base de datos est localmente se escribe localhost o la
direccin IP 127.0.0.1) y el initial catalog se refiere al nombre de la base de datos a la
cual deseas conectarte, en este ejemplo se desea conectarse a una base de datos
llamada Alumnos, dbAlumnos:

Dim strConn As String=data source=localhost; initial catalog=dbAlumnos;

3. Se implementa el DataAdapter conectando a la base de datos y cargando los datos:

Dim da As New SqlClient.SqlDataAdapter(Select * From tbAlumnos, strConn)

4. Se carga el DataSet (dst) con los datos consumidos por el DataAdapter (da):

da.Fill(dst)

Si el resultado de este ejemplo no muestra alguna excepcin en el compilador que utilices


para desarrollar en Visual Basic, entonces sabrs que es la conexin correcta a la base
de datos a la cual te ests conectando que en este caso es la dbAlumnos.

En este tema se expuso la forma en la que es posible trabajar con conexiones a orgenes
de datos de manera offline, para despus sincronizar y actualizar uno o varios orgenes
de datos. Se puede decir a manera de conclusin que los DataAdapters son el
complemento de los DataSets, pues el uno depende directamente del otro para efectuar
su labor.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 18


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

En este tema se desarrollaron varios conceptos bsicos del acceso a datos en .NET, pues
gracias a los DataSets y los diferentes objetos que lo conforman es posible recuperar
informacin de un cierto origen de datos y presentarla para su gestin.

Es importante mencionar tambin que ADO .NET es 100% compatible con XML, por esta
razn es posible llenar un DataSet a travs de XML. La informacin que se cargue con
XML al DataSet ser capaz de combinarse con otros datos ya cargados en el mismo.

Actividad 1. Acceso a datos

Realiza la actividad de aprendizaje siguiendo las instrucciones y las indicaciones de tu


Docente en lnea.

1.3. Anlisis de requerimientos

En el caso del tema de esta asignatura se habla sobre requerimientos en el marco de la


conexin mediante .NET, refirindose a los requerimientos que hace el cliente para la
elaboracin de un proyecto de desarrollo de software sobre el diseo y modelado de una
base de datos. Esto es muy importante, ya que para llevar a cabo una conexin desde
.NET se requiere antes que nada crear la base de datos a la cual se va a realiza la
conexin y conocer el motor de base de datos para saber qu tecnologa de conexin de
.NET se va a utilizar.

En el transcurso de esta asignatura desarrollars una aplicacin donde se maneje el


acceso a los datos mediante los diferentes conceptos que aprendiste en esta unidad y el
lenguaje de programacin Visual Basic .NET. Al finalizar tu proyecto podrs implementar
una aplicacin de escritorio que pueda interactuar con informacin almacenada en una
base de datos, utilizando los diferentes recursos de desarrollo de software que
proporciona la tecnologa .NET.

En este proyecto vas a cubrir los requerimientos de una organizacin que incluye
procesos que ayudars a mejorar con tu aplicacin y que son la base de todo sistema de
informacin: altas, bajas, cambios y consulta de informacin, de tal manera que este
desarrollo te servir de mucho en tu carrera profesional pues este tipo de procesos son
muy comunes en el desarrollo de software.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 19


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

1.3.1 Anlisis del caso de estudio

Como se mencion anteriormente, para realizar una conexin, el primer paso es crear la
base de datos para poder lograr la conexin desde .NET. En este captulo se ilustrar con
un ejemplo la forma en que se analizan y exponen los requerimientos de conexin
mediante .NET.

Se requiere cubrir los requerimientos de la organizacin Almacenes Cozumel, quienes


se dedican a la venta de artculos para el hogar y ropa. Los procesos que se requieren
mejorar en relacin con aplicaciones de software giran en torno a las actividades: altas,
bajas, cambios y consulta de informacin.

La organizacin Almacenes Cozumel requiere el desarrollo de una aplicacin de


escritorio que les permita conocer la informacin actualizada de su directorio de
proveedores. El requerimiento comprende los siguientes procesos:

1. Dar de alta a sus proveedores almacenando la siguiente informacin por cada uno:

Nombre de la empresa
Razn social
RFC
Nombre completo del contacto o ejecutivo
Correo electrnico
Pgina web
Telfono
Direccin (calle, nmero, colonia, delegacin o municipio, estado, pas)
Servicios (muebles, electrnica, lnea blanca, ropa mujer, ropa hombre, deportes)

2. Mostrar un listado con los proveedores en el que se indique el nombre de la empresa,


telfono, correo electrnico y tipo de servicios que ofrece. Este listado deber contener un
filtro que permita seleccionar nicamente a los proveedores de un cierto servicio elegido.

3. Se requiere que la aplicacin permita actualizar la informacin de los proveedores,


pues muchas veces cambian sus domicilios o datos de contacto y es muy importante
contar con un directorio actualizado.

4. Finalmente es necesario que la aplicacin cuente con los mecanismos necesarios para
poder eliminar de la base de datos a algn proveedor.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 20


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

En este tema se han expuesto los puntos principales del requerimiento de los Almacenes
Cozumel, mismos que vas a desarrollar a lo largo del curso hasta crear una aplicacin
que los pueda cubrir al 100%.

El primer paso consiste en analizar los requerimientos antes expuestos y disear una
propuesta de solucin a los mismos que incluya una base de datos relacional.

Actividad 2. Tecnologas de acceso a datos mediante .NET

Realiza la actividad de aprendizaje siguiendo las instrucciones y las indicaciones de


tu Docente en lnea.

1.3.2 Diseo de base de datos relacional

Una base de datos relacional es el modelo ms utilizado en la actualidad, permite


establecer interconexiones (relaciones) entre los datos que estn almacenados en las
tablas, y a travs de dichas conexiones, relacionar los datos de ambas tablas (Cabello,
2002).

En una base de datos no puede haber tablas individuales, todas ellas deben tener
relacin; para llevar a cabo esta relacin debes tener en cuenta lo que es una llave
primaria (primary key, sus siglas son PK) y una llave fornea (foreign key, sus siglas son
FK), estos trminos los viste en tus materias de base de datos.

Como ejemplo se explicarn 2 tablas, la primera de ellas se llamar Pas, la cual


contendr los siguientes campos:
Clave_pais
Nombre_pais

La segunda tabla se llamar Estado y tendr los siguientes campos:


Clave_estado
Nombre_estado

Cada tabla tendr su propia llave primaria, en el caso de Pas ser Clave_pais y para
Estado ser Clave_estado. Para llevar a cabo la relacin entre estas dos tablas debes
tener en cuenta que un estado pertenece a un pas, por lo tanto, Pas le hereda su llave
primaria a la tabla Estado, cuando se hace esto la llave primaria o PK que se hereda se
asigna como campo a la otra tabla, se respeta el mismo nombre que sera Clave_pais y

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 21


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

pasa a ser su llave fornea o FK, con esto estars haciendo una relacin entre dos tablas
y visualmente se vera como en la siguiente figura:

Figura relacin de tablas de base de datos (Modelo relacional)

Como se mencion en el captulo 1.3, en el transcurso de esta asignatura desarrollars


una aplicacin donde se maneje el acceso a los datos. Entonces, para que se lleve a cabo
la conexin entre .NET y estos datos es necesario en primer lugar crear una base de
datos.

Siguiendo el subtema 1.3.1. Anlisis del caso de estudio, para el caso de proveedores se
requiere contar con la siguiente informacin:
Nombre de la empresa
Razn social
RFC
Nombre completo del contacto o ejecutivo
Correo electrnico
Pgina web
Telfono
Direccin (calle, nmero, colonia, delegacin o municipio, estado, pas)
Servicios (muebles, electrnica, lnea blanca, ropa mujer, ropa hombre, deportes)

Para ello se deber realizar una tabla llamada proveedores y la informacin solicitada en
los requerimientos pasar a ser un campo de la tabla proveedores la cual quedara de la
siguiente manera:
PROVEEDORES

Clave_proveedor PK
razon_social
rfc
nombre_contacto
correo_electronico
pagina_web
telefono

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 22


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

direccion
servicios

En cdigo de MySQL, que es el motor de base de datos que ocupars para crear la base
de datos y hacer la conexin con .NET, sera el siguiente:

CREATE TABLE `proveedores` (


`clave_proveedor` SMALLINT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`razon_social` VARCHAR( 10 ) NULL ,
`rfc` VARCHAR( 10 ) NULL ,
`nombre_contacto` VARCHAR( 50 ) NULL ,
`correo_electronico` VARCHAR( 50 ) NULL ,
`pagina_web` VARCHAR( 100 ) NULL ,
`telefono` VARCHAR( 10 ) NULL ,
`direccion` VARCHAR( 30 ) NULL ,
`servicios` VARCHAR( 100 ) NULL)

En conclusin, con esta tabla podrs realizar ya los requerimientos que se te soliciten en
un caso. Debes tomar en cuenta que muchos trminos que se vieron en este subtema los
viste en tus materias de Administracin y diseo de bases de datos, en este apartado se
expone el ejemplo para que observes la forma de crear tu base de datos y tus tablas y
con ello puedas realizar la conexin con .NET.

Autoevaluacin

Realiza la autoevaluacin con el fin de que puedas analizar el avance que has tenido y
detectar las reas de oportunidad respecto al estudio de la primera unidad.

Evidencia de aprendizaje. Conexin con bases de datos en .NET

Realiza la actividad de aprendizaje siguiendo las instrucciones y las indicaciones de tu


Docente en lnea.

Autorreflexiones

Realiza la autorreflexin con base en las indicaciones de tu Docente en lnea

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 23


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Cierre de la unidad

Durante el desarrollo de esta unidad conociste uno de los pasos fundamentales en el


proceso de desarrollo de software, que es establecer una conexin con un origen de
datos y realizar modificaciones sobre la informacin almacenada en l.

En esta unidad se expusieron las bases necesarias para poder avanzar en las siguientes
unidades hacia el desarrollo de un proyecto, debido a que con los temas vistos ya podrs
vincular tus aplicaciones desarrolladas con .NET y una base de datos. Recuerda que la
mejor manera de aprender y comprender estos temas es practicar.

Vuelve a repasar la informacin de esta unidad 1 Conexin con bases de datos y practica
la programacin de archivos de conexin, esto te ayudar a comprender mejor la
importancia de esta primera unidad y te facilitar la aplicacin de estos conocimientos
para mejorar tus habilidades en el desarrollo de software y en la utilizacin de estos
recursos de conexin mediante .NET.

Para saber ms

Sitio de MSDN. Microsoft cuenta con un excelente centro de recursos para


desarrolladores, se trata del Microsoft Developer Network (MSDN) y est disponible en el
siguiente sitio web: http://msdn.microsoft.com/es-es/

El sitio de MSDN comprende documentacin tcnica, ejemplos de cdigo, foros,


descargas y otros recursos que seguramente te sern de mucha utilidad en el desarrollo
de tus aplicaciones. El siguiente acceso se refiere exclusivamente a contenidos .NET
http://social.msdn.microsoft.com/Search/es-ES?query=.net&ac=4

Es muy recomendable que consultes este centro de recursos debido a que es publicado
por la misma compaa que desarrollo la tecnologa .NET y aqu podrs encontrar lo
ltimo en informacin relacionada a Visual Basic .NET.

Al igual que Microsoft, el sitio de MYSQL Dev. ofrece tambin el sitio web Developer
Zone, donde encontrars los mejores recursos e informacin sobre este manejador.
https://dev.mysql.com/

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 24


Programacin NET III
Unidad 1. Conexin con bases de datos en .NET

Fuentes de consulta

Durn, L. (2007). Bases de Datos con Visual Basic. Espaa: Marcombo, Ediciones
Tcnicas.

Gmez, E. (2010). Aplicaciones con Visual Basic .NET. Mxico: Alfaomega.

Groussard, T. (2006). Visual Basic 2005. Paris: ENI.

MSDN, Microsoft Developer Network (2013 a). Consumidores y proveedores OLE


DB. [En lnea] http://msdn.microsoft.com/es-
mx/library/bdf2dfw6%28v=vs.90%29.aspx

MSDN, Microsoft Developer Network (2013 b). Datasets de ADO.NET. [En lnea]
http://msdn.microsoft.com/es-es/library/zb0sdh0b.aspx

MSDN, Microsoft Developer Network (2013 c). Microsoft OLE DB. [En lnea]
http://msdn.microsoft.com/en-
us/library/windows/desktop/ms722784%28v=vs.85%29.aspx

MSDN, Microsoft Developer Network (2013 d). Referencia de Microsoft ActiveX


Data Objects (Traduccin automtica). [En lnea] http://msdn.microsoft.com/es-
mx/library/bdf2dfw6%28v=vs.90%29.aspx

MSDN, Microsoft Developer Network (2013 e). Universal Data Access.


http://msdn.microsoft.com/es-es/library/aa260803%28v=vs.60%29.aspx

Ramrez, J. F., (2005). Aprenda Practicando Visual Basic 2005 usando Visual
Studio 2005. Mxico: Pearson Educacin.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software 25