Sei sulla pagina 1di 55

DEFINICIN DE TRMINOS BSICOS

PROGRAMACIN. Es un proceso para convertir especificaciones generales de un sistema en


instrucciones utilizables por la mquina, que produzcan los resultados deseados. Se le conoce
tambin como desarrollo de software.

PROGRAMA. Es una lista de instrucciones que la computadora debe seguir para procesar datos
y convertirlos en informacin. Las instrucciones se componen de enunciados usados en lenguajes
de programacin.

LENGUAJE DE PROGRAMACIN.
Es un conjunto de smbolos junto a un conjunto de reglas para combinar dichos smbolos que se
usan para expresar programas. Constan de un lxico, una sintaxis y una semntica.
Qu conoces t por lxico, sintaxis y semntica?
LXICO: Conjunto de smbolos permitidos o vocabulario
SINTAXIS: Reglas que indican cmo realizar las construcciones del lenguaje
SEMNTICA: Reglas que permiten determinar el significado de cualquier construccin del
lenguaje.

ANLISIS DE SISTEMAS. Es el proceso de clasificacin e interpretacin de hechos,


diagnstico de problemas y empleo de la informacin para recomendar mejoras al
sistema.
AUTOMATIZACIN. Sustitucin de habilidades humanas por operaciones automticas de
mquinas.
ANALISTA. Profesional de la computacin que se dedica a planificar y analizar todos los
procesos necesarios para solucionar un problema determinado o realizar una aplicacin
deseada mediante una computadora.
ARCHIVOS. Conjuntos de datos almacenados segn rasgo comn a todos ellos.
BASE DE DATOS. Conjunto de ficheros de datos organizados segn mtodo que facilita la
actualizacin, acceso y recuperacin de informacin contenida en ellos.
CICLO DE VIDA PARA EL DESARROLLO DE SISTEMA. Consiste en el desarrollo de sistema
por etapas, que forman el ciclo de desarrollo de sistema. Cada etapa del ciclo se desarrolla
para soporte a las etapas sucesivas, es decir, que no pueden ser desarrolladas de forma
aislada e independiente.
DATOS. Materia prima empleada para crear informacin til.
DESARROLLO DE SISTEMA. Consiste en la creacin de paquetes de software para
satisfacerlas necesidades de una organizacin especfica y de sus usuarios.
DISEO DE SISTEMAS. Es el proceso de planificar, reemplazar o complementar un sistema
organizacional existente.
DOCUMENTACIN. Es una actividad que consiste en registrar los hechos y las
especificaciones de un sistema.

HARDWARE. Sistema formado por el equipo computacional, es decir, por las partes fsicas
de la computadora. Incluye la unidad central de proceso, memoria principal, y los
dispositivos perifricos.
IMPLEMENTACIN DE SISTEMA. Es el proceso de verificar e instalar nuevos equipos,
entrenar a los usuarios, instalar la aplicacin y construir todos los archivos de datos
necesarios para la utilizacin del mismo.

INTERFAZ DE USUARIO. Es la especificacin de una conversacin entre el usuario del


sistema y el ordenador.
PROGRAMACIN ORIENTADA A OBJETOS. Consiste en crear componentes de una
aplicacin independientes que respondan a las acciones del usuario, al sistema y que se
puedan reutilizar fcilmente.
SISTEMA. Es el conjunto de programas que interrelacionados entre s satisfacen las
necesidades de la informacin.

DESARROLLO DE SOFTWARE.

Consiste en la creacin de paquetes de software para satisfacerlas necesidades de una organizacin


especfica y de sus usuarios.
El Grupo de Desarrollo de Software es el encargado de coordinar los trabajos correspondientes al
Desarrollo de aplicaciones dentro de las Dependencias, as como de proveer y difundir las polticas y
lineamientos que debern observarse para la creacin de Sistemas de calidad, compatibles e integrales.

Diagnosticar y proveer herramientas a travs de la planificacin, anlisis, desarrollo e implementacin de


sistemas de informacin
Identificar las necesidades de desarrollo de Sistemas de Informacin propias de cada dependencia, as
como coordinar los trabajos para su realizacin y puesta en marcha.
La Ingeniera de Software es una disciplina de la Ingeniera que concierne a todos los aspectos de la
produccin de software. Los Ingenieros de Software adoptan un enfoque sistemtico para llevar a cabo
su trabajo y utilizan las herramientas y tcnicas necesarias para resolver el problema planteado, de
acuerdo a las restricciones de desarrollo y recursos disponibles.

Los encargados de desarrollar software pueden instalar (o modificar) y despus instalar software
comprado a terceros o escribir programas diseados a la medida del solicitante. La eleccin depende del
costo de cada alternativa, del tiempo disponible para escribir el software y de la disponibilidad de los
programadores.
Por regla general los programadores (o analistas programadores) que trabajan las grandes organizaciones
pertenecen a un grupo permanente de profesionales.
En empresas pequeas, donde no hay programadores, se pueden contratar servicios externos de
programacin.

Los programadores tambin son responsables de la documentacin de los programas y de proporcionar


una explicacin de cmo y por qu ciertos procedimientos se codifican en determinada forma.
La documentacin es esencial para probar el programa y llevar a cabo el mantenimiento de una vez que
la aplicacin se encuentre instalada.

Los programadores tambin son responsables de documentar el programa e incluir los comentarios que
expliquen tanto cmo y por qu se utiliz cierto procedimiento conforma se codifico de cierta forma. La
documentacin es esencial para probar el programa y darle mantenimiento una vez que la aplicacin se
ha puesto en marcha

Durante la prueba, el sistema se utiliza en forma experimental para asegurar que el software no falle; es
decir, que corra de acuerdo a sus especificaciones y a la manera que los usuarios esperan que lo haga. Se
examinan datos especiales de prueba en la entrada del procesamiento y los resultados para localizar
algunos problemas inesperados.
Puede permitirse tambin a un grupo limitado de usuarios que utilice el sistema, de manera que los
analistas puedan captar si tratan de utilizarlo en forma no planeadas. Es preferible detectar cualquier
anomala antes de que la empresa ponga en marcha el sistema y dependa de l.

En muchas compaas la prueba se lleva a cabo por personas diferentes a aquellos que los escriben en
forma original; es decir si se utilizan personas que no conocen como se disearon ciertas partes de los
programas, se asegura una mayor y ms completa prueba, adems de ser imparcial, lo que da a un
software ms confiable.

En el desarrollo de un software se necesita lenguaje de programacin, entonces Qu es un lenguaje de


programacin? Un lenguaje de programacin es un conjunto de smbolos y reglas sintcticas y semnticas
que definen su estructura y el significado de sus elementos y expresiones. Es utilizado para controlar el
comportamiento fsico y lgico de una mquina. Por ejemplo Visual Basic
En Visual Basic se llevan a cabo ejemplos de cmo crear o disear un programa llamado proyecto con
distintos formularios.

Cada formulario contiene un cdigo (subrutinas) stas permiten llevar a cabo las acciones. Un
desarrollador de software necesita de un lenguaje de programacin para llevar a cabo su programa, el
cual lleva a cabo funciones especficas.

En la ingeniera del software el trmino fases de desarrollo expresa cmo ha progresado el desarrollo de
un software y cunto desarrollo puede requerir. Cada versin importante de un producto pasa
generalmente a travs de una etapa en la que se agregan las nuevas caractersticas (etapa alfa), despus
una etapa donde se eliminan errores activamente (etapa beta), y finalmente una etapa en donde se han
quitado todos los bugs importantes (etapa estable). Las etapas intermedias pueden tambin ser
reconocidas.
Las etapas se pueden anunciar y regular formalmente por los desarrolladores del producto, pero los
trminos se utilizan a veces de manera informal para describir el estado de un producto. Normalmente
muchas compaas usan nombres en clave para las versiones antes del lanzamiento de un producto,
aunque el producto y las caractersticas reales son raramente secretas.

HERRAMIENTAS PARA EL DESARROLLO DE SISTEMAS.

Estas herramientas nos ayudan como analistas a trasladar diseos en aplicaciones funcionales.
Herramientas para Ingeniera de Software. Apoyan el Proceso de formular diseos de Software,
incluyendo procedimientos y controles, as como la documentacin correspondiente.
Generadores de Cdigos. Producen el cdigo fuente y las aplicaciones a partir de especificaciones
funcionales bien articuladas.
Herramientas para Pruebas. Apoyan la fase de la evaluacin de un Sistema o departes del mismo contra
las especificaciones. Incluyen facilidades para examinar la correcta operacin del Sistema, as como el
grado de perfeccin alcanzado en comparacin con las expectativas.
DISEO DE SISTEMA.

El diseo de sistema es activado por la relacin de las necesidades de la empresa obtenida


durante el anlisis de sistemas.

Las etapas del Diseo del Sistema son:


1. El diseo de los datos. Trasforma el modelo de dominio de la informacin, creado durante
el anlisis, en las estructuras de datos necesarios para implementar el Software.
2. El Diseo de la Interfaz. Describe como se comunica el Software consigo mismo, con los
sistemas que operan junto con l y con los operadores y usuarios que lo emplean.
3. El Diseo de procedimientos. El Diseo de proceso es un conjunto de pasos repetitivos
que permiten al diseador describir todos los aspectos del Sistema a construir. A lo largo
del diseo se evala la calidad del desarrollo del proyecto con un conjunto de revisiones
tcnicas:
El diseo debe implementar todos los requisitos explcitos contenidos en el modelo de
anlisis y debe acumular todos los requisitos implcitos que desea el cliente. Cuando se va
a disear un Sistema de Computadoras se debe tener presente que el proceso de un
diseo incluye, concebir y planear algo en la mente, as como hacer un dibujo, modelo o
croquis.
4. Diseo de la Salida. En este caso la salida se refiere a los resultados e informaciones
generadas por el Sistema, para la mayora de los usuarios la salida es la nica razn para
el desarrollo de un Sistema y la base de evaluacin de su utilidad.
5. Diseo de Archivos. Incluye decisiones con respecto a la naturaleza y contenido del
propio archivo, como si se fuera a emplear para guardar detalles de las transacciones,
datos histricos, o informacin de referencia. Entre las decisiones que se toman durante
el diseo de archivos, se encuentran las siguientes:
Los datos que deben incluirse en el formato de registros contenidos en el archivo.
La longitud de cada registro, con base en las caractersticas de los datos que contenga.
La secuencia a disposicin de los registros dentro del archivo (La estructura de
almacenamiento que puede ser secuencial, indexada o relativa).
6. Diseo de Base de Datos. La mayora de los sistemas de informacin ya sean implantados
en sistemas de cmputos grandes o pequeos, utilizan una base de datos que pueden
abarcar varias aplicaciones, o pueden utilizar un administrador de base de datos, en caso
de que el sistema requiera varias bases de datos.

Herramientas para el Diseo de Sistemas. Apoyan el proceso de formular las caractersticas que
el sistema debe tener para satisfacer los requerimientos detectados durante las actividades del
anlisis:
Herramientas de especificacin. Apoyan el proceso de formular las caractersticas que debe
tener una aplicacin, tales como entradas, Salidas, procesamiento y especificaciones de control.
Muchas incluyen herramientas para crear especificaciones de datos.
Herramientas para presentacin. Se utilizan para describir la posicin de datos, mensajes y
encabezados sobre las pantallas de las terminales, reportes y otros medios de entrada y salida.

DISEO DE ARQUITECTURA DE SOFTWARE.

Arquitectura es la estructura organizacional de un sistema. Una arquitectura puede ser


descompuesta recursivamente en partes que interactan a travs de interfaces, relaciones que
conectan partes, y restricciones para ensamblar partes.
Buschmann et al. (1996)10 ofrece otra definicin de arquitectura de software:
Una arquitectura de software es una descripcin de los subsistemas y componentes de un
sistema de software y las relaciones entre ellos. Los subsistemas y componentes son tpicamente
especificados envistas diferentes para mostrar las propiedades funcionales y no funcionales
relevantes de un sistema de software.
La arquitectura de software de un sistema es un artificio. Es el resultado de una actividad de
diseo de software.
Ejemplo:
Reportes
Socio / Cliente

MODELO CONCEPTUAL DEL SISTEMA.

Definicin. Una parte de la investigacin sobre el dominio del problema consiste en identificar
los conceptos que lo conforman. Para representar estos conceptos se va a usar un Diagrama de
Estructura Esttica de UML, al que se va a llamar Modelo Conceptual.
En el Modelo Conceptual se tiene una representacin de conceptos del mundo real, no de
componentes software.
Objetivo. El objetivo de la creacin de un Modelo Conceptual es aumentar la comprensin del
problema. Por tanto, a la hora de incluir conceptos en el modelo, es mejor crear un modelo con
muchos conceptos que quedarse corto y olvidar algn concepto importante Ejemplo:

ESPECIFICACIN DEL SISTEMA.

Se conoce tambin como definicin del problema o anlisis del programa. En este paso se
determinan la informacin inicial para la elaboracin del programa. Es donde se determina qu
es lo que debe resolverse con el computador, de qu presupuestos se debe partir... en definitiva,
el planteamiento del problema.
Se requieren cinco tareas:
a. Determinacin de objetivos del programa.Debe definirse claramente los problemas
particulares que debern ser resueltos o las tareas que hay que realizar, esto nos permitir
saber qu es lo que se pretende solucionar y nos proporcionar informacin til para el
planeamiento de la solucin.
b. Determinacin de la salida deseada.Los datos seleccionados deben ser arreglados en una
forma ordenada para producir informacin. Esta salida podra ser una salida de impresin
o de presentacin en el monitor.

c. Determinacin de los datos de entrada. Una vez identificada la salida que se desea, se
pueden determinar los datos de entrada y la fuente de estos datos. Los datos deben ser
recolectados y analizados.
d. Determinacin de los requerimientos de procesamiento. Aqu se definen las tareas de
procesamiento que deben desempearse para que los datos de entrada se conviertan en
una salida.
e. Documentacin de las especificaciones del programa. Es importante disponer de
documentacin permanente. Deben registrarse todos los datos necesarios para el
procesamiento requerido. Esto conduce al siguiente paso del diseo del programa.

ELEMENTOS DE UN SISTEMA. Los elementos de un sistema de informacin automatizado son:

a. El equipo computacional: es decir, el hardware necesario para que el sistema de


informacin pueda operar. Lo constituyen las computadoras y el equipo perifrico que
pueden conectarse a ella.
b. El recurso humano, que interacta con el Sistema de Informacin, el cual est formado
por las personas que utilizan el sistema, alimentndolo con datos o utilizando los
resultados que genere.
c. Los datos o informacin fuente, que es ingresada al sistema, son todas las entradas que
este realiza para generar como resultado la informacin que se requiere.
Un sistema de informacin realiza cuatro actividades bsicas: entrada, almacenamiento,
procesamiento y salida de informacin.

1. Entrada de Informacin. Es el proceso mediante el cual el Sistema de Informacintoma


los datos que requiere para procesar la informacin. Las entradas pueden ser manuales o
automticas. Las manuales son aquellas que se proporcionan en forma directa por el
usuario, mientras que las automticas son datos o informacin que provienen o son
tomados de otros sistemas o mdulos. Esto ltimo se denominainterfaces automticas.

2. Almacenamiento de informacin. El almacenamiento es una de las actividades o


capacidades ms importantes que tiene una computadora, ya que a travs de esta
propiedad el sistema puede recordar la informacin guardada en la seccin o proceso
anterior. Esta informacin suele ser almacenada en estructuras de informacin
denominadas archivos. La unidad tpica de almacenamiento son los discos magnticos o
discos duros, los discos flexibles o disquete y los discos compactos (CD-ROM).

3. Procesamiento de Informacin. Es la capacidad del Sistema de Informacin para efectuar


clculos de acuerdo con una secuencia de operaciones preestablecida. Estos clculos
pueden efectuarse con datos introducidos recientemente en el sistema o bien con datos
que estn almacenados. Esta caracterstica de los sistemas permite la transformacin de
datos fuente en informacin que puede ser utilizada para la toma de decisiones, lo que
hace posible, entre otras cosas, que un tomador de decisiones genere una proyeccin
financiera a partir de los datos que contiene un estado de resultados o un balance general
de un ao base.

4. Salida de Informacin. La salida es la capacidad de un Sistema de Informacin para sacar


la informacin procesada o bien datos de entrada al exterior. Las unidades tpicas de
salida son las impresoras, terminales, disquete, cintas magnticas, la voz, los graficadores,
entre otros. Es importante aclarar que la salida de un Sistema de Informacin puede
constituir la entrada a otro Sistema de Informacin o mdulo. En este caso, tambin existe
una interface automtica de salida.

ADO.NET
Introduccin.
La mayora de las aplicaciones escritas en Visual Basic y Visual C# giran en torno a la lectura y actualizacin
de informacin de bases de datos. Para permitir la integracin de datos en aplicaciones distribuidas y
escalables, Visual Studio .NET es compatible con una nueva generacin de tecnologa de acceso a datos:
ADO.NET.
El problema es comunicar un programa o aplicacin con una base de datos y ms que comunicar se
pretende que el programa o aplicacin realice una serie de procesos u operaciones con la base de datos
o mejor an con el conjunto de tablas que contiene una base de datos.
La primera nota a recordar es que una base de datos puede estar fsicamente en el servidor y en algn
flder o directorio del disco duro de dicha mquina. Otra cosilla que debemos recordar es que as como
existen servidores de pginas (Web Server), servidores de correo (Mail Server), servidores de ftp (ftp
Server),...,tambin existen servidores de bases de datos (DataBase Server), los ms comunes son el
SqlServer de Microsoft, Oracle, MySql, y muchos ms, estos servidores tambin pueden crear, administrar
y procesar una base de datos.
El modo de comunicacin entre nuestra aplicacin y la base de datos implica que ambos manejen un
lenguaje de programacin comn, es decir no se puede mandar una instruccin en C# .net, o en visual
Basic .net o en Basic o pascal...o en cualquier otro lenguaje, a la base de datos y adems esperar que esta
ltima la entienda.
Para entender esto, una razn muy sencilla es que la base de datos tendra que conocer o comprender
todos los lenguajes de programacin, ahora dime, no sera ms fcil que exista un lenguaje comn...?,
entonces para resolver este problema de comunicacin es que se usa un lenguaje comn de bases de
datos que tanto los lenguajes de programacin existentes como las bases de datos entienden, este
lenguaje comn de bases de datos es el SQL (Structured Query Languaje) o lenguaje estructurado de
consultas.
La pregunta es ahora como mandamos las instrucciones SQL a la base de datos, la respuesta es mediante
los OBJETOS ADO.NET, las cuales proporcionan acceso coherente a orgenes de datos como Microsoft SQL
Server, as como a orgenes de datos expuestos mediante OLE DB y XML.
En la actualidad ADO.NET ya es parte del .NET Framework, esto quiere decir que es, de alguna manera,
parte del sistema operativo y no ms un redistribuible de 4 5 MB que se necesita alojar junto al cliente
o junto al instalador de una aplicacin. Esto significa que nosotros, como desarrolladores, estaremos
enfocados ms al acceso a datos y a la lgica para manipular estos datos, y no tendremos porqu
preocuparnos en cmo a los clientes la librera.
La mayora de las aplicaciones necesitan algn mecanismo de acceso a datos. Si est creando una
aplicacin nueva, dispone de tres opciones excelentes para obtener acceso a los datos: ADO.NET, ADO y
OLE DB. Si necesita modificar el mecanismo de acceso a datos de una aplicacin existente, debera seguir
utilizando la tecnologa actual de acceso a datos de la aplicacin por cuestiones de mantenimiento. Si
usted prev que la aplicacin va a tener un ciclo de vida largo, entonces debe considerar la posibilidad de
redisear la tecnologa de acceso a datos de la aplicacin y utilizar ADO.NET en aplicaciones administradas
o ADO en aplicaciones nativas. A largo plazo, el uso de las tecnologas ms modernas de acceso a datos
reduce el tiempo de desarrollo, simplifica el cdigo y proporciona un rendimiento excelente.

ACCESO A DATOS CON ADO.NET


ADO.NET es una tecnologa de acceso a datos que se basa en los objetos ADO (Objetos de Datos
ActiveX) anteriores.

Es una manera nueva de acceder a los datos construida sobre ADO. ADO.NET puede coexistir con
ADO.

Tambin podemos decir que ADO.NET es un conjunto de clases que exponen servicios de acceso
a datos al programador de .NET.

ADO.NET proporciona un conjunto variado de componentes para crear aplicaciones distribuidas


de uso compartido de datos. Forma parte integral de .NET Framework, y proporciona acceso a
datos relacionales, datos XML y datos de aplicaciones.

ADO.NET es compatible con diversas necesidades de programacin, incluida la creacin de


clientes de bases de datos clientes y objetos empresariales de nivel medio utilizados por
aplicaciones, herramientas, lenguajes o exploradores de Internet.

ADO.NET utiliza un modelo de acceso pensado para entornos desconectados. Esto quiere decir
que la aplicacin se conecta al origen de datos, hace lo que tiene que hacer, por ejemplo
seleccionar registros, los carga en memoria y se desconecta del origen de datos.

ADO.NET es un conjunto de clases que usted utiliza para acceder y manipular orgenes de datos
como por ejemplo, una base de datos en SQL Server o una planilla Excel.

ADO.NET utiliza XML como el formato para transmitir datos desde y hacia su base de datos y su
aplicacin Web.

Hay 3 espacios de nombres que se importar en un formulario Web o formulario Windows si est
usando ADO.NET:
System.Data.
System.Data.SqlClient.
System.Data.OleDb.

Espacios de nombres para datos en el .NET Framework


Entre los espacios de nombres de .NET Framework relativos a datos y XML se incluyen:

Espacio de Nombre Descripcin


Consiste en las clases que constituyen la arquitectura ADO.NET, que es el
mtodo primario para tener acceso a los datos de las aplicaciones
administradas. La arquitectura ADO.NET permite crear componentes que
System.Data
administran eficientemente datos procedentes de mltiples orgenes.
ADO.NET tambin proporciona las herramientas necesarias para solicitar,
actualizar y reconciliar datos en aplicaciones distribuidas.
Contiene las clases que comparten los proveedores de datos .NET
Framework. Dichos proveedores describen una coleccin de clases que
System.Data.Common
se utiliza para obtener acceso a un origen de datos, como una base de
datos, en el espacio administrado.
Clases que proporcionan funcionalidad basada en estndares para
System.Xml
procesar cdigo XML.
Clases que componen el proveedor de datos de .NET Framework para
orgenes de datos compatibles con OLE DB. Estas clases permiten
System.Data.OleDb
conectarse a un origen de datos OLE DB, ejecutar comandos en el origen
y leer los resultados.
Clases que conforman el proveedor de datos de .NET Framework para
SQL Server, que permite conectarse a un origen de datos SQL Server 7.0,
ejecutar comandos y leer los resultados. El espacio de nombres
System.Data.SqlClient
System.Data.SqlClient es similar al espacio de nombres
System.Data.OleDb, pero optimizado para el acceso a SQL Server 7.0 y
versiones posteriores.
Proporciona clases para tipos de datos nativos de SQL Server. Estas clases
System.Data.SqlTypes
ofrecen una alternativa ms segura y ms rpida a otros tipos de datos.
Clases que componen el proveedor de datos de .NET Framework para
System.Data.OleDb OLE DB. Estas clases permiten el acceso a orgenes de datos ODBC en el
espacio administrado.
Clases que componen el proveedor de datos de .NET Framework para
System.Data.OracleClient Oracle. Estas clases permiten el acceso a orgenes de datos Oracle en el
espacio administrado.

Para el acceso a datos desde Visual Basic se utiliza el nuevo modelo de acceso a datos que proporciona la
plataforma .NET FrameWork: ADO.NET.

Bsicamente, se implementarn a modo de ejemplo algunas aplicaciones Windows Forms que accedan a
datos utilizando la tecnologa ADO.NET.
Descripcin:

Conceptos de Bases de Datos:

Terminologa de las Bases de Datos:


Los siguientes trminos se definen en el contexto de las bases de datos relacionales.

Base de datos relacional:


Una base de datos relacional es un tipo de base de datos que almacena informacin en tablas. Las bases
de datos relacionales utilizan valores coincidentes de dos tablas para relacionar datos en una tabla con
datos de otra. En una base de datos relacional, normalmente almacenamos un tipo especfico de datos
slo una vez.

Tabla:
Una tabla es un objeto base de datos que almacena datos en registros (filas) y campos (columnas).
Normalmente, los datos tienen relacin con una categora concreta de cosas, como empleados o pedidos.

Registro:
Un registro es una coleccin de datos sobre una persona, un lugar, un evento o algn otro elemento. Los
registros son los equivalentes lgicos de filas en una tabla. Por ejemplo, un registro en la tabla Empleados
debera tener informacin sobre un empleado particular.

Campo:
Un registro est compuesto de varios campos. Cada campo de un registro contiene una pieza de
informacin sobre el registro. Por ejemplo, el registro de un Empleado tiene campos para el ID del
empleado, Apellido, Nombre, etc.

Clave principal:
Una clave principal identifica de modo nico cada fila de una tabla. La clave principal es un campo o una
combinacin de campos cuyo valor es nico para cada fila (o registro) de la tabla. Por ejemplo, el campo
Employee ID es la clave primaria para la tabla Empleados. No puede haber dos empleados con el mismo
ID.

Clave fornea:
Una clave fornea es uno o ms campos (columnas) de una tabla que hacen referencia al campo o campos
de la clave principal de otra tabla. Una clave fornea indica cmo estn relacionadas las tablas.

Relacin:
Una relacin es una asociacin establecida entre campos comunes (columnas) de dos tablas. Una relacin
puede ser de uno a uno, de uno a muchos, o de muchos a muchos. Las relaciones permiten que los
resultados de las consultas incluyan datos de varias tablas. Una relacin uno a uno entre una tabla Clientes
y una tabla Pedidos permitira que una consulta devolviera todos los pedidos de un determinado cliente.

Acceso de slo lectura:


El acceso de slo lectura a una base de datos significa que podemos recuperar (leer) los datos pero no
podemos modificarlos (escribir). Un archivo de slo lectura o un documento puede visualizarse o
imprimirse pero no puede modificarse de ningn modo.

Acceso de lectura/escritura:
El acceso de lectura/escritura a una base de datos significa que podemos recuperar (leer) los datos y
modificarlos (escribir).
Cmo funciona la Programacin de Bases de Datos:
Cuando desarrollamos aplicaciones, tenemos diferentes requerimientos para trabajar con datos. En
algunos casos, simplemente desearemos mostrar datos en un formulario. En otros casos, es posible que
necesitemos crear una forma de compartir informacin con otra organizacin.

Principales tareas de la programacin de bases de datos:


Cuando trabajamos con datos, utilizamos varios objetos para recuperar y modificar informacin de una
base de datos. En general, cuando trabajamos con bases de datos en ADO.NET, realizamos las siguientes
tareas:

1. Conectar a una base de datos.


2. Solicitar datos especficos.
Especificar los datos que se desean recuperar y si se necesita acceso de solo lectura o de
lectura/escritura a los datos.
3. Recuperar y mostrar los datos.
4. Cerrar la conexin (en algunas aplicaciones).
5. Modificar los datos recuperados (si se dispone de acceso de lectura/escritura).
6. Volver a abrir la conexin (en algunas aplicaciones).
7. Transmitir a la base de datos los cambios realizados en los datos.
8. Cerrar la conexin.

Qu es SQL?
Antes de que podamos escribir una aplicacin que utilice datos, necesitamos saber algo sobre el Lenguaje
de consulta estructurado (Structured Query Language, SQL). Utilizamos SQL para especificar exactamente
qu registros recuperar de una base de datos.
__________________________________________________________________________________
NOTA: SQL est definido por el estndar American National Standards Institute (ANSI). Existen
diferentes implementaciones de SQL para diferentes motores de bases de datos. Por ejemplo, existe
una versin de SQL para bases de datos Microsoft Access (Jet 4.0) y una para SQL Server.

La instruccin SELECT:
Utilizando SQL, podemos especificar exactamente qu registros deseamos recuperar y el orden en que los
deseamos. Podemos crear una instruccin SQL que recupere informacin de mltiples tablas a la vez, o
podemos crear una instruccin que recupere un registro especfico.

La instruccin SELECT devuelve campos especficos de una o ms tablas de una base de datos. La siguiente
instruccin recupera el nombre de todos los registros de la tabla Empleados:

SELECT Nombre FROM Empleados

Para seleccionar todos los campos de la tabla, se utiliza un asterisco (*):

SELECT * FROM Empleados

Ejemplo con Visual Basic .NET:

Cuando utilizamos instrucciones SQL en Microsoft Visual Basic .NET, debemos poner comillas en las
instrucciones, como muestra el siguiente cdigo:

Dim sqlString As String


sqlString = "SELECT * FROM Empleados"

Clusula WHERE
Podemos utilizar la clusula WHERE para limitar la seleccin de registros utilizando mltiples campos para
filtrar consultas. El siguiente cdigo muestra cmo utilizar la clusula bsica WHERE para recuperar todos
los registros de la tabla Empleados cuyo apellido sea igual a Danseglio:

SELECT * FROM Empleados WHERE Apellido = 'Danseglio'

Existen otras formas de la clusula WHERE que podemos utilizar para depurar ms nuestras consultas,
como sigue:

Clusula WHERE IN

Podemos utilizar la clusula WHERE IN para obtener todos los registros que satisfacen criterios
especficos. Por ejemplo, podemos devolver apellidos de empleados en determinados estados,
como muestra el siguiente cdigo:

SELECT Apellido
FROM Empleados
WHERE Empleados.Estado IN ('NY','WA')

Clusula WHERE BETWEEN

Tambin podemos devolver una seleccin de registros que se encuentren entre dos criterios
especficos. Observe el uso de signo de almohadilla (#) enmarcando las fechas en el siguiente
cdigo:

SELECT OrderID
FROM Orders
WHERE OrderDate BETWEEN #01/01/93# AND #01/31/93#

Clusula WHERE LIKE

Podemos utilizar la clusula WHERE LIKE para obtener todos los registros en los que exista una
condicin concreta en un campo especfico. Por ejemplo, el siguiente cdigo muestra cmo
obtener todos los registros en los que el apellido empiece con la letra D.

SELECT Apellido FROM Empleados WHERE Apellido LIKE 'D%'

Clusula ORDER BY

Podemos utilizar la clusula ORDER BY para obtener registros en un orden determinado. La opcin ASC
indica orden ascendente. La opcin DESC indica orden descendente. El siguiente cdigo devuelve todos
los campos de la tabla Empleados y los ordena por el apellido:

SELECT * FROM Empleados ORDER BY Apellido ASC


Qu es un entorno conectado?

Introduccin.
Un entorno conectado es aquel en el que un usuario o una aplicacin estn conectados continuamente a
una fuente de datos. Durante muchos aos de la historia de la informtica, el nico entorno disponible
era el entorno conectado.

Ventajas:
Un escenario conectado proporciona las siguientes ventajas:

Un entorno conectado es ms fcil de mantener.


La concurrencia se controla ms fcilmente.
Es ms probable que los datos estn ms actualizados que en un escenario desconectado.

Inconvenientes:
Un escenario conectado tiene los siguientes inconvenientes:

Debe mantenerse una conexin de red constante.


Un escenario conectado proporciona una escalabilidad limitada.

Ejemplos:
He aqu algunos ejemplos en los que debe utilizarse una conexin continua:
Una fbrica que requiere una conexin en tiempo real para controlar la salida de produccin y el
almacn.
Un agente de bolsa que requiere una conexin constante a los valores del mercado.

Qu es un entorno desconectado?

Introduccin. Con la llegada de Internet, los entornos desconectados se han convertido en algo habitual,
y con el creciente uso de dispositivos de mano, los escenarios desconectados se estn convirtiendo en
algo casi universal. Equipos porttiles, Pocket PCs y Tablet PCs permiten utilizar aplicaciones sin conexin
a los servidores o a las bases de datos.

En numerosas situaciones, la gente no trabaja en entornos totalmente conectados o desconectados, sino


en un entorno que combina ambas opciones.

Definicin. Un entorno desconectado es aquel en el que un usuario o una aplicacin no estn conectados
constantemente a una fuente de datos. Las aplicaciones de Internet utilizan frecuentemente arquitecturas
desconectadas. Se abre la conexin, se recuperan los datos y la conexin se cierra. El usuario trabaja con
los datos en el navegador y la conexin vuelve a abrirse para actualizar u otras peticiones.

Los usuarios mviles que trabajan con equipos porttiles son tambin los usuarios principales de los
entornos desconectados. Los usuarios pueden llevarse un subconjunto de datos en un equipo
desconectado y posteriormente fusionar los cambios con el almacn de datos central.

Ventajas. Un entorno desconectado proporciona las siguientes ventajas:


Las conexiones se utilizan durante el menor tiempo posible, permitiendo que menos conexiones
den servicio a ms usuarios.
Un entorno desconectado mejora la escalabilidad y el rendimiento de las aplicaciones,
maximizando la disponibilidad de conexiones.

Inconvenientes. Un entorno desconectado tiene los siguientes inconvenientes:

Los datos no siempre estn actualizados.


Pueden producirse conflictos de cambios que deben solucionarse.
La transmisin de datos puede percibirse ms lenta de lo que sera en entornos conectados.

Ejemplos. He aqu algunos ejemplos en los que podra ser apropiado un entorno desconectado:

Una aplicacin que mantiene datos de clientes en un equipo porttil de un representante.


Una aplicacin que hace un seguimiento de lluvias y precipitaciones.
Una aplicacin que un granjero utiliza para contar el ganado. La aplicacin est en el dispositivo
basado en Microsoft Windows CE del granjero que ejecuta Microsoft SQL Server 2000 Windows
CE Edition.

Gestin de Actualizaciones en una Aplicacin Desconectada:

En un entorno desconectado, varios usuarios pueden modificar los datos de los mismos registros al mismo
tiempo; por ello, nuestra aplicacin debe gestionar conflictos en las actualizaciones de datos. Existen
varias formas para gestionarlos:

Permitir que prevalezcan las actualizaciones ms recientes.


Permitir que prevalezcan las primeras actualizaciones realizadas.
Escribir cdigo en la aplicacin que permita a los usuarios determinar qu cambios deberan
conservarse. Las soluciones especficas pueden variar dependiendo de los requerimientos de
negocio de una determinada aplicacin.

NOTA. Si desea ms informacin sobre la gestin de conflictos, consulte Introduccin a la


concurrencia de datos en ADO.NET en la documentacin de Microsoft Visual Studio .NET.

COMPONENTES DE ADO.NET
Los componentes de ADO.NET han sido diseados para separar el acceso a datos de la manipulacin de
los datos. Existen dos componentes principales de ADO.NET que lo cumplen: el componente DataSet y los
proveedores de datos .NET. Los proveedores de datos .NET constan de un conjunto de componentes que
incluyen los objetos Connection, Command, DataReader y DataAdapter. Los componentes del proveedor
de datos .NET estn diseados explcitamente para la manipulacin de datos desconectados.

ADO.NET y Windows Forms proporcionan componentes para el consumidor de datos que podemos utilizar
para mostrar nuestros datos. Incluyen controles como DataGrid, que pueden ser enlazados a datos, y
propiedades de enlace a datos en la mayora de controles estndares de Windows, como los controles
TextBox, Label, ComboBox y ListBox.

El .NET Framework incluye numerosos proveedores de datos .NET, incluyendo el proveedor de datos de
.NET para SQL Server, el proveedor de datos de .NET OLE DB para SQL, y el proveedor OLE DB para
Microsoft Jet. Si necesitamos un proveedor personalizado, podemos escribir proveedores de datos .NET
para cualquier fuente de datos. En este mdulo, nos centraremos en el proveedor de datos de .NET OLE
DB para SQL.

______________________________________________________________________
________
NOTA. Si deseamos obtener ms informacin sobre los proveedores de datos incluidos en .NET,
consultar Utilizar proveedores de datos de .NET para obtener acceso a datos en la
documentacin de Visual Studio .NET.
Si deseamos obtener ms informacin sobre la creacin de proveedores personalizados, consultar
Ejemplo de proveedor de datos de .NET, Implementacin de Visual Basic en la documentacin
de Visual Studio .NET.

Objetos comunes de ADO.NET

Introduccin:
Los proveedores de datos de .NET y el espacio de nombres System.Data proporcionan los objetos
ADO.NET que utilizaremos en un escenario desconectado.

Objetos ADO.NET:
ADO.NET proporciona un modelo de objetos comn para proveedores de datos de .NET. La siguiente tabla
describe los principales objetos ADO.NET que utilizaremos en un escenario desconectado.

OBJETO DESCRIPCIN
Connection Establece y gestiona una conexin a una fuente de datos especfica. Por ejemplo, la
clase OleDbConnection se conecta a fuentes de datos OLE DB.

Command Ejecuta un comando en una fuente de datos. Por ejemplo, la clase OleDbCommand
puede ejecutar instrucciones SQL en una fuente de datos OLE DB.

DataSet Diseado para acceder a datos con independencia de la fuente de datos. En


consecuencia, podemos utilizarlo con varias y diferentes fuentes de datos, con datos
XML, o para gestionar datos locales a la aplicacin. El objeto DataSet contiene una
coleccin de uno o ms objetos DataTable formados por filas y columnas de datos,
adems de clave principal, clave fornea, restricciones e informacin de la relacin
sobre los datos en los objetos DataTable.
DataReader Proporciona un flujo de datos eficaz, slo-reenvo y de slo-lectura desde una fuente
de datos.
DataAdapter Utiliza los objetos Connection, Command y DataReader implcitamente para poblar
un objeto DataSet y para actualizar la fuente de datos central con los cambios
efectuados en el DataSet. Por ejemplo, OleDbDataAdapter puede gestionar la
interaccin entre un DataSet y una a base de datos Access.

Adems de las clases principales citadas en la tabla anterior, los proveedores de datos de .NET Framework
tambin incluyen las que se enumeran en la tabla siguiente.

Objeto Descripcin
Permite incluir comandos en las transacciones que se realizan en el
Transaction origen de datos. La clase base para todos los objetos Transaction es
DbTransaction.
Un objeto auxiliar que genera automticamente las propiedades de
comando de un DataAdapter o que obtiene de un procedimiento
CommandBuilder almacenado informacin acerca de parmetros con la que puede rellenar
la coleccin Parameters de un objeto Command. La clase base para todos
los objetos CommandBuilder es DbCommandBuilder.
Un objeto auxiliar que proporciona un modo sencillo de crear y
administrar el contenido de las cadenas de conexin utilizadas por los
ConnectionStringBuilder
objetos Connection. La clase base para todos los objetos
ConnectionStringBuilder es DbConnectionStringBuilder.
Define los parmetros de entrada, salida y valores devueltos para los
Parameter comandos y procedimientos almacenados. La clase base para todos los
objetos Parameter es DbParameter.
Se devuelve cuando se detecta un error en el origen de datos. En el caso
de que el error se detecte en el cliente, los proveedores de datos de
Exception
.NET Framework inician una excepcin de .NET Framework. La clase base
para todos los objetos Exception es DbException.
Expone la informacin relacionada con una advertencia o error devueltos
Error
por un origen de datos.
Se proporciona para los atributos de seguridad de acceso a cdigo de los
ClientPermission proveedores de datos de .NET Framework. La clase base para todos los
objetos ClientPermission es DBDataPermission.

Componente u Objeto Detalle


Conjunto de datos
DataSet Los conjuntos de datos almacenan datos en una memoria cach
DataTable desconectada. La estructura de un conjunto de datos es similar a la de
DataColumm una base de datos relacional; expone un modelo jerrquico de tablas,
DataRow filas y columnas. Adems, contiene restricciones y relaciones definidas
DataRelation para el conjunto de datos.
Constraint
Adaptador de datos Los adaptadores de datos son una parte integral de los proveedores
OleDbDataAdapter administrados por ADO.NET, que son el conjunto de objetos que se utiliza
SqlDataAdapter para la comunicacin entre un origen de datos y un conjunto de datos.
OdbcDataAdapter Esto significa leer datos de una base de datos para un conjunto de datos
OracleDataAdapter y, a continuacin, volver escribir en la base de datos los datos
SqlDataReader modificados del conjunto de datos. Sin embargo, un adaptador de datos
OleDbDataReader puede trasladar datos entre cualquier origen y un conjunto de datos. Por
OdbcDataReader ejemplo, podra haber un adaptador que trasladara datos entre un
OracleDataReader servidor Microsoft Exchange y un conjunto de datos.
Conexin de datos
SqlConnection
Para trasladar datos entre un almacn de datos y una aplicacin, en
OleDbConnection
primer lugar deber tener una conexin con el almacn de datos.
OdbcConnection
OracleConnection
Windows Forms es la nueva plataforma de desarrollo de aplicaciones
para Microsoft Windows, basada en .NET Framework. Este marco de
Formulario Windows trabajo proporciona un conjunto de clases claro, orientado a objetos y
Forms ampliable, que permite desarrollar complejas aplicaciones para
Windows. Adems, los formularios Windows Forms pueden actuar como
interfaz de usuario local en una solucin distribuida de varios niveles.
Las pginas de formularios Web Forms pueden usarse para crear pginas
Web programables que sirvan como interfaz de usuario de las
aplicaciones Web. Este tipo de pginas presenta la informacin al usuario
Pgina de Formulario Web en cualquier explorador o dispositivo cliente e implementa lgica de
Forms aplicacin mediante el cdigo de la parte servidor. La salida de las pginas
de formularios Web Forms puede contener casi cualquier lenguaje
compatible con HTTP, incluidos HTML, XML, WML y ECMAScript (JScript,
JavaScript).

DataSet.
El DataSet de ADO.NET est expresamente diseado para el acceso a datos independientemente del
origen de datos. Como resultado, se puede utilizar con mltiples y distintos orgenes de datos, con datos
XML o para administrar datos locales de la aplicacin. El DataSet contiene una coleccin de uno o ms
objetos DataTable formados por filas y columnas de datos, as como informacin sobre claves principales,
claves externas, restricciones y relaciones relativas a los datos incluidos en los objetos DataTable.
Un objeto DataSet representa un esquema (o una base de datos entera o un subconjunto de una).
Puede contener las tablas y las relaciones entre esas tablas.
Un objeto DataTable representa una sola tabla en la base de datos. Tiene un nombre,
filas, y columnas.
Un objeto DataView "se sienta sobre" un DataTable y ordena los datos (como una
clusula "order by" de SQL) y, si se activa un filtro, filtra los registros (como una
clusula "where" del SQL). Para facilitar estas operaciones se usa un ndice en
memoria. Todas las DataTables tienen un filtro por defecto, mientras que pueden
ser definidos cualquier nmero de DataViews adicionales, reduciendo la
interaccin con la base de datos subyacente y mejorando as el desempeo.
Un DataColumn representa una columna de la tabla, incluyendo su nombre y
tipo. Un objeto DataRow representa una sola fila en la tabla, y permite leer y
actualizar los valores en esa fila, as como la recuperacin de cualquier fila que
est relacionada con ella a travs de una relacin de clave primaria - clave
extranjera.
Un DataRowView representa una sola fila de un DataView, la diferencia entre un
DataRow y el DataRowView es importante cuando se est interactuando sobre
un resultset.
Un DataRelation es una relacin entre las tablas, tales como una relacin de clave
primaria clave ajena. Esto es til para permitir la funcionalidad del DataRow de
recuperar filas relacionadas.
Un Constraint describe una propiedad de la base de datos que se debe cumplir, como que
los valores en una columna de clave primaria deben ser nicos. A medida que los datos
son modificados cualquier violacin que se presente causar excepciones.
Un DataSet es llenado desde una base de datos por un DataAdapter cuyas propiedades Connection y
Command que han sido iniciados. Sin embargo, un DataSet puede guardar su contenido a XML
(opcionalmente con un esquema XSD), o llenarse a s mismo desde un XML, haciendo esto
excepcionalmente til para los servicios Web, computacin distribuida, y aplicaciones ocasionalmente
conectadas.
En el diagrama siguiente se ilustra la relacin entre un proveedor de datos de .NET Framework y un
DataSet.

Arquitectura de ADO.NET.
Cmo trabajar con bases de datos en el Explorador de
servidores:
Introduccin:
Podemos utilizar el Explorador de servidores para visualizar y manipular enlaces a datos, conexiones de
bases de datos, y recursos del sistema en cualquier servidor para el que tengamos acceso en red.
Utilizando el Explorador de servidores, podemos:
Crear y abrir conexiones de datos a Microsoft Access, a servidores ejecutando Microsoft SQL
Server y a otras bases de datos.
Iniciar sesin en servidores y mostrar sus bases de datos, tablas, campos y sus datos sin abandonar
el entorno de desarrollo ni utilizar el software de la base de datos.
Visualizar los servicios del sistema, incluyendo el registro de sucesos, colas de mensajes,
contadores de rendimiento y otros servicios del sistema.
Visualizar informacin sobre los Servicios Web XML disponibles y los mtodos y esquemas que
proporcionan.
Almacenar proyectos y referencias a bases de datos.
Crear componentes de datos que hagan referencia al recurso de datos o monitorizar su actividad
arrastrando nodos desde el Explorador de servidores a nuestros proyectos de Visual Studio .NET.
Interactuar con recursos de datos programando los componentes de datos creados en nuestros
proyectos de Visual Studio .NET.

Abrir el Explorador de servidores:


Podemos abrir el Explorador de servidores en cualquier momento durante el proceso de desarrollo,
mientras trabajamos con cualquier tipo de proyecto o elemento.

Abrir el Explorador de servidores:


En el men Ver, hacer clic en Explorador de servidores.
Si la ficha Explorador de servidores se muestra en el extremo izquierdo de la pantalla, hacer
clic en esa ficha.

Agregar y eliminar conexiones a datos:


El Explorador de servidores muestra las conexiones a bases de datos bajo el nodo Conexiones de datos.
Despus de establecer una conexin, podemos disear programas para abrir conexiones y recuperar y
manipular los datos. De modo predeterminado, el Explorador de servidores muestra conexiones a datos
y enlaces a servidores utilizados con anterioridad.

Agregar una conexin a datos en el Explorador de servidores:

1. En el men Herramientas, hacer clic en Conectar con base de datos. Se abre el cuadro de dilogo
Propiedades del vnculo de datos.

2. En la ficha Proveedor del cuadro de dilogo Propiedades del vnculo de datos, seleccionar un
proveedor.
3. En la ficha Conexin del cuadro de dilogo Propiedades del vnculo de datos, proporcionar la
informacin que se solicita. Los campos de entrada que se muestran pueden variar en funcin del
proveedor seleccionado en la ficha Proveedor.
Por ejemplo, si seleccionamos el proveedor OLE DB para SQL Server, la ficha Conexin muestra
campos para el nombre de servidor, el tipo de autenticacin y la base de datos.

4. Hacer clic en Aceptar para establecer la conexin de datos.


El cuadro de dilogo Propiedades del vnculo de datos se cierra, y la nueva conexin de datos
aparece debajo del nodo Conexiones de datos, con el nombre del servidor y de la base de datos a
la que se accede. Por ejemplo, si creamos una conexin de datos a una base de datos denominada
NWind en un servidor llamado Server1, aparece una nueva conexin con el nombre
Server1.NWind.dbo bajo el nodo Conexiones de datos.

Eliminar una conexin de datos desde el Explorador de servidores:

1. En el Explorador de servidores, expandir el nodo Conexiones de datos.


2. Seleccionar la conexin a la base de datos deseada.
3. Pulsar DELETE.
No se produce ningn efecto en la base de datos. Hemos eliminado la referencia desde nuestra
vista.

Arrastrar y soltar recursos de datos:


Podemos arrastrar elementos desde el Explorador de servidores y soltarlos en el Diseador de Windows
Forms. Ubicar elementos en el Diseador de Windows Forms crea nuevos recursos de datos que estn
preconfigurados para recuperar informacin de fuentes de datos seleccionadas.

Crear un nuevo componente de datos utilizando el Explorador de servidores

Podemos crear un componente de datos preconfigurado para hacer referencia a un determinado recurso.

1. En la vista de Diseo, abrir el formulario al que deseamos agregar un componente de datos.


2. En el Explorador de servidores, seleccionar el elemento de datos que deseamos utilizar. Un
ejemplo de elemento de datos es un campo o una tabla.
3. Arrastrar el elemento desde el Explorador de servidores a la superficie del diseador.

Visualizar elementos de la base de datos:


Podemos utilizar el Explorador de servidores para visualizar y recuperar informacin de todas las bases de
datos instaladas en un servidor. Podemos hacer una lista de tablas, vistas, procedimientos almacenados y
funciones de la base de datos en el Explorador de servidores, expandir tablas individuales para hacer una
lista de sus columnas y disparadores, y hacer clic con el botn derecho sobre la tabla para seleccionar el
Diseador de tablas del men contextual.
ADO.NET y XML

Introduccin
ADO.NET est estrechamente integrado con XML. Por ello, ADO.NET facilita la conversin de datos
relacionales a formato XML. Tambin podemos convertir datos de XML en tablas y relaciones.

Importancia del uso de XML


XML es una forma til y porttil de representar datos de un modo abierto e independiente de la
plataforma. Una caracterstica importante de los datos XML es que estn basados en texto. El uso de datos
basados en texto, en contraposicin a pasar datos binarios como el conjunto de resultados de ADO, facilita
el intercambio de datos XML entre aplicaciones y servicios, aunque se estn ejecutando en diferentes
plataformas. XML tambin permite que las organizaciones intercambien datos sin necesidad de una
personalizacin adicional del software propietario de cada organizacin.

Soporte de XML
El modelo de objetos ADO.NET incluye soporte extensivo para XML. Cuando utilice el soporte de XML en
ADO.NET, debe tener en cuenta los siguientes hechos y directrices:

Se pueden leer datos de un DataSet en formato XML. El formato XML es til si desea
intercambiar datos entre aplicaciones o servicios en un entorno distribuido.

Se puede rellenar un DataSet con datos XML. Esto resulta til si se reciben datos XML de otra
aplicacin o servicio y se desea actualizar una base de datos utilizando estos datos.

Puede crearse un esquema XML para la representacin XML de los datos en un DataSet. El
esquema XML puede utilizarse para realizar tareas como serializar los datos XML a un flujo o
archivo.

Pueden cargarse datos XML desde un flujo o un archivo a un rbol Document Object Model
(DOM). A continuacin, pueden manipularse los datos como XML o como un DataSet. Para
ello, debe disponer de un esquema XML para describir la estructura de los datos para el
DataSet.
Pueden crearse DataSets tipados. Un DataSet tipado es una subclase de DataSet, con
propiedades y mtodos adicionales para tener disponible la funcionalidad de DataSet. Para
describir la representacin XML del DataSet tipado, Visual Studio .NET genera una definicin
equivalente del esquema XML para este DataSet.

Ejemplo de uso de XML en una aplicacin desconectada


Este ejemplo describe cmo utilizar XML en una aplicacin ADO.NET desconectada. Podemos utilizar XML
para intercambiar datos entre las distintas partes del sistema del modo siguiente:

1. La aplicacin cliente invoca un servicio Web XML para solicitar datos de una base de datos.
2. El servicio Web XML consulta una fuente de datos para obtener los datos solicitados.
3. El servicio Web XML carga los resultados en un DataSet.
4. El servicio Web XML traduce los datos a formato XML y devuelve los datos XML a la aplicacin
cliente.
5. La aplicacin cliente procesa los datos XML de algn modo. Por ejemplo, el cliente puede cargar
los datos XML en un DataSet y enlazarlos a un control del interfaz de usuario como un DataGrid.
Cuando la aplicacin cliente est lista, invoca un servicio Web XML para actualizar la fuente de
datos con los cambios de los datos.
6. El servicio Web XML carga los nuevos datos XML en un DataSet y utiliza los nuevos datos para
actualizar la fuente de datos.

Nota. Si deseamos obtener ms informacin sobre cmo poblar un DataSet con un flujo XML,
consultar Clase DataSet, XML en la documentacin de Visual Studio .NET.
Si desea obtener ms informacin sobre la obtencin de datos como XML desde SQL Server, consultar
Proveedor de datos de .NET SQL Server, XML en la documentacin de Visual Studio .NET.

Trabajar con
Datos
Introduccin
ADO.NET proporciona todos los componentes necesarios para conectarnos a fuentes de datos y trabajar
con datos en nuestras aplicaciones. En esta aprenderemos a utilizar objetos ADO.NET para conectarnos a
una base de datos, recuperar modificar y transmitir datos actualizados a la base de datos. Tambin
aprenderemos cmo mostrar datos en un formulario Windows Forms utilizando el control DataGrid.
Finalmente, aprenderemos cmo utilizar el Asistente para formularios de datos para automatizar el
proceso de trabajar con datos. El asistente simplifica la tarea de agregar controles y establecer
propiedades a unos pocos pasos sencillos.

Cmo utilizar un objeto Connection:

Introduccin
Antes de trabajar con datos, es necesario establecer primero una conexin con una fuente de datos. Para
conectar con una fuente de datos, escogemos el tipo de conexin, especificamos la fuente de datos, y
abrimos la conexin a la fuente de datos. Cuando acabamos de trabajar con los datos, cerraremos la
conexin.
Escoger el tipo de conexin
Podemos utilizar el objeto Connection para conectar a una fuente de datos especfica. Podemos utilizar
SqlConnection para conectar a bases de datos SQL Server u OleDbConnection para conectar a otros tipos
de fuentes de datos.
Especificar la fuente de datos
Despus de escoger el tipo de conexin, utilizamos una propiedad ConnectionString para especificar el
proveedor de datos, la fuente de datos, y dems informacin utilizada para establecer la conexin. El
formato de estas cadenas difiere ligeramente entre el espacio de nombres SqlClient y el espacio de
nombres OleDb.

Abrir y cerrar la conexin de datos


El objeto Connection soporta un mtodo Open que abre la conexin despus de que se hayan establecido
las propiedades de la conexin, y un mtodo Close que cierra la conexin a la base de datos despus de
que todas las transacciones se hayan liberado.

Ejemplo de SQL: El siguiente ejemplo muestra cmo utilizar un objeto Connection, la propiedad
ConnectionString y el mtodo Open para conectarnos a una base de datos SQL Server utilizando el Data
Provider .NET de SQL Server:
Dim PubsSQLConn As
PubsSQLConn = New SqlClient.SqlConnection( ) SqlClient.SqlConnection
PubsSQLConn.ConnectionString = "Integrated Security=True;" & _
"Data Source=local;Initial Catalog=Pubs;"
PubsSQLConn.Open( )

Ejemplo de Jet 4.0: El siguiente ejemplo muestra cmo conectarnos a una base de datos Access utilizando
el Data Provider OLE DB Jet 4.0:

Dim NWindOleDbConn As OleDb.OleDbConnection


NWindOleDbConn = New OleDb.OleDbConnection( )
NWindOleDbConn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\NWind.MDB" NWindOleDbConn.Open( )

Cmo utilizar un objeto DataAdapter:


INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO DANIEL ALCIDES CARRIN 2015

Introduccin:
Tras establecer una conexin con una fuente de datos, podemos utilizar un adaptador de datos para
intercambiar datos entre la fuente de datos y un dataset. En muchas aplicaciones, esto significa leer datos
de una base de datos en un dataset mediante un adaptador de datos y a continuacin escribir los datos
cambiados desde el dataset al adaptador de datos y nuevamente a la base de datos. Sin embargo, un
adaptador de datos puede mover datos entre cualquier fuente y un dataset. Por ejemplo, podra existir
un adaptador que mueva datos entre un servidor que ejecute Microsoft Exchange y un dataset.

Tipos de adaptadores de datos:


Visual Studio incorpora dos adaptadores de datos principales para utilizarse con bases de datos:

OleDbDataAdapter es apropiado para utilizarlo con cualquier fuente de datos que proporcione
un proveedor OLE DB.
SqlDataAdapter es especfico a SQL Server. Como no funciona a travs de una capa OLE DB, es
ms rpido que OleDbDataAdapter. Sin embargo, slo puede ser utilizado con SQL Server versin
7.0 o superior.

Creacin del DataAdapter:


Podemos instanciar el DataAdapter utilizando la palabra clave Dim y pasando una cadena de consulta y
un objeto Connection como parmetros. El DataAdapter verificar si la Connection est abierta, y si no
lo est, la abrir para nosotros y la cerrar cuando nuestra llamada al mtodo se complete. Esta
aproximacin es til si ya hemos establecido las propiedades de un objeto Connection en nuestra
aplicacin y slo necesitamos abrir la conexin para poblar las tablas de datos.

Ejemplos:
Los siguientes ejemplos muestran cmo crear una instancia de una clase Sql Client DataAdapter. El cdigo
para crear una instancia de la clase DataAdapter se muestra en negrita.

Ejemplo de SQL:
El siguiente ejemplo muestra cmo acceder a la tabla Titles en la base de datos Pubs:

Dim PubsSQLConn As SqlClient.SqlConnection


PubsSQLConn = New SqlClient.SqlConnection( )
PubsSQLConn.ConnectionString = "Integrated Security=True;" & _
"Data Source=local;Initial Catalog=Pubs;"
COMPUTACIN E INFORMTICA
33
INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO DANIEL ALCIDES CARRIN 2015

Dim PubsAdapter As SQLDataAdapter = New SQLDataAdapter _


("Select * from Titles", PubsSQLConn)

' Code to populate the dataset


Dim titlesDataset As DataSet = New DataSet
PubsAdapter.Fill(titlesDataset)

' Code to bind the dataset to form controls might go here

Ejemplo de Jet 4.0:


El siguiente ejemplo muestra cmo acceder a la tabla Customers en la base de datos Northwind utilizando
el OLE DB Provider para Microsoft Jet:

Private NWindOleDbConn as OleDb.OleDbConnection

Private Sub Form1_Load(...) Handles MyBase.Load NWindOleDbConn


= New OleDb.OleDbConnection( )
NWindOleDbConn.ConnectionString = "Provider= " & _
"Microsoft.Jet.OLEDB.4.0;Data Source=c:\NWind.mdb"

Dim NWindAdapter As New OleDb.OleDbDataAdapter _


("Select * from Customers", NWindOleDbConn)

' Code to populate the DataSet might go here


' Code to bind the DataSet to form controls might go here

Mtodos clave:
DataAdapter soporta mtodos especficos para mover datos entre el dataset y la fuente de datos.
Podemos utilizar un adaptador de datos para realizar las siguientes operaciones:

Recuperar filas de una fuente de datos y poblarlas en tablas de datos correspondientes en un


dataset.

Para recuperar filas de una fuente de datos y poblar un dataset, utilizar el mtodo Fill de
SqlDataAdapter u OleDbDataAdapter. Cuando invocamos el mtodo, se invoca una sentencia SQL
SELECT en la fuente de datos. Ejecutar este mtodo abrir y cerrar el objeto de conexin.
Transmitir los cambios realizados a una tabla dataset a la fuente de datos correspondiente.

Para transmitir los cambios en una tabla dataset a la fuente de datos, utilizar el mtodo Update
del adaptador. Cuando invocamos el mtodo, ejecuta cualquier sentencia SQL INSERT, UPDATE o
DELETE que sea necesaria, dependiendo de si el registro afectado es nuevo, modificado o borrado.
Ejecutar este mtodo abrir y cerrar el objeto conexin.

Ejemplo: ' Code to manipulate the data locally by using the DataSet

COMPUTACIN E INFORMTICA 3
4
' goes here

' Update the database by means of the data adapter

PubsAdapter.Update (PubsDataSet)

Ejemplo de Jet 4.0: ' Create the Connection, the DataAdapter, and the DataSet,

' and populate the dataset Dim NWindConn As OleDb.OleDbConnection


NWindConn = New OleDb.OleDbConnection( )
NWindConn.ConnectionString = "Provider= " & _
"Microsoft.Jet.OLEDB.4.0;Data Source=c:\NWind.mdb"

Dim NWindAdapt As New OleDb.OleDbDataAdapter("SELECT * " & _ "from


Customers", NWindConn)

Dim NWindDataSet As DataSet = New DataSet( )


NWindAdapt.Fill(NWindDataSet, "customersTable")

' Code to manipulate the data locally by using the DataSet


' goes here
' Update the database by means of the data adapter
NWindAdapt.Update (NWindDataSet.Tables("customersTable"))

Cmo utilizar un objeto DataSet:


INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO DANIEL ALCIDES CARRIN 2015

Introduccin:
Despus de especificar los datos que queremos recuperar, el prximo paso es poblar un dataset con datos
desde la base de datos. Los datasets almacenan datos en un cach desconectado. La estructura de un
dataset es similar a la de una base de datos relacional y ofrece un modelo de objetos jerrquico de tablas,
filas y columnas. Adems, contiene restricciones y relaciones que estn definidas para el dataset.

Poblar datasets:
Un dataset es un contenedor, de modo que necesitamos poblarlo con datos. Podemos poblar un dataset
de varios modos:

Invocar el mtodo Fill de un adaptador de datos. Llamando este mtodo hace que el
adaptador ejecute una sentencia SQL o un procedimiento almacenado y pueble una tabla
en el dataset con los resultados. Si el dataset contiene mltiples tablas, probablemente
tendremos adaptadores de datos separados para cada tabla, y por tanto deberemos llamar
a cada mtodo Fill de cada adaptador por separado.

COMPUTACIN E INFORMTICA 3
6
Poblar tablas manualmente en el dataset creando DataRows y aadirlas a la coleccin Rows de la tabla.
Podemos hacer esto slo en tiempo de ejecucin. No podemos establecer la coleccin Rows en tiempo
de diseo.

Leer un dataset. documento


XML o flujo en el
dataset. Esta tcnica puede ser til si nuestra aplicacin obtiene
Copiar
de
los diferentes fuentes (diferentes Servicios Web XML, por ejemplo), pero necesita contenidos de
dataset.
otro datasets
consolidarlos en un
nico
para acceder a datos almacenados en una base de datos y almacenar los datos
DataSet e nuestra aplicacin.
Ejemplo:
Utilizamos un DataAdapter
en DataTables Dataset dentro de un
DataAdapter
Ejemplo har
de SQL:
referencia a ella utilizando un nmero de ndice. El comando Update
Las sentencias en negrita
del siguiente
ejemplo muestran ' Create the Connection, the DataAdapter, and the DataSet, ' cmo
poblar un and populate the dataset
denominado
PubsDataset con datos de una base de datos SQL utilizando un . Slo hay una tabla y el dataset
utliza la misma tabla para actualizar los cambios a la base de datos.

Dim PubsSQLConn As SqlClient.SqlConnection


PubsSQLConn = New SqlClient.SqlConnection( )
PubsSQLConn.ConnectionString = "Integrated Security=True;" & _ "Data
Source=local;Initial Catalog=Pubs;"
Dim PubsAdapter As SQLDataAdapter = New SQLDataAdapter _
("Select * from Authors", PubsSQLConn)
Dim PubsDataSet As DataSet = New DataSet( )
PubsAdapter.Fill(PubsDataSet)
Ejemplo de Jet 4.0: blar un
' Code to manipulate the data locally by using the DataSet '
DataSet llamado goes here NWindD
apter.
' Update the database by means of the data adapter

PubsAdapter.Update (PubsDataSet.Tables("authorsTable"))

NWindConn = New
Las sentencias en negrita del siguiente ejemplo muestran cmo po
ataSet con datos desde una base de datos OLE DB utilizando un DataAd
' Create the Connection, the DataAdapter, and the DataSet, '
and populate the dataset:

Dim NWindConn As OleDb.OleDbConnection


OleDb.OleDbConnection( )
NWindConn.ConnectionString = "Provider= " & _
"Microsoft.Jet.OLEDB.4.0;Data Source=c:\NWind.mdb"

Dim NWindAdapt As New OleDb.OleDbDataAdapter("SELECT * " & _


"from Customers", NWindConn)
Dim NWindDataSet As DataSet = New DataSet( ) NWindAdapt.Fill(NWindDataSet)

' Code to manipulate the data locally by using the DataSet


' goes here

' Update the database by means of the data adapter

NWindConn.Open( )
NWindAdapt.Update (NWindDataSet)
NWindConn.Close( )

Cmo utilizar un control DataGrid:


Introduccin:
Despus de poblar un
dataset, podemos
visualizar y modificar datos
utilizando el control DataGrid de Windows Forms. DataGrid muestra datos en una serie de filas y
columnas. El caso ms simple es cuando la rejilla se enlaza con una fuente de datos que contiene una
nica tabla sin relaciones. En ese caso, los datos aparecen simplemente en filas y columnas, como en una
hoja de clculo.

Cmo funciona el control DataGrid:


Si el DataGrid se enlaza a datos con mltiples tablas relacionadas y si se activa la navegacin en la rejilla,
ste visualizar expansores en cada fila. Un expansor permite la navegacin desde una tabla padre a una
hija. Haciendo clic en un nodo se muestra la tabla hija y haciendo clic en el botn Atrs muestra la tabla
padre original. En este modo, la rejilla muestra las relaciones jerrquicas entre tablas.
DataGrid puede proporcionar un interfaz de usuario para un dataset, navegacin entre tablas relacionadas y ricas
capacidades de formateo y edicin.
La visualizacin y manipulacin de datos son funciones separadas: el control gestiona el interfaz de
usuario, mientras que las actualizaciones de datos las gestiona la arquitectura de enlace de datos de
Windows Forms y por los proveedores de datos ADO.NET. Por tanto, mltiples controles enlazados a la
misma fuente de datos permanecern sincronizados.

Enlace de datos al control:


Para que el control DataGrid funcione, debemos enlazarlo con una fuente de datos utilizando las
propiedades DataSource y DataMember en tiempo de diseo o el mtodo SetDataBinding en tiempo de
ejecucin. Este enlace vincula el DataGrid a un objeto de fuente de datos instanciado (como un DataSet
o DataTable) y el control DataGrid se actualiza con los resultados de acciones realizadas sobre los datos.
La mayora de acciones especficas de datos no son realizadas por el DataGrid. Se realiza por medio de la
fuente de datos.

Para enlazar el control DataGrid a una nica tabla en el diseador


1. Establecer la propiedad del control DataSource al objeto que contiene los elementos de datos a los
que queremos
enlazar. dataset, establecer la propiedad DataMember al nombre de la tabla
2. Si la fuente de datos
es un con la que dataset o una vista de datos basada en una tabla de un dataset
queremos dataset.
enlazar.
3. Si la fuente de datos
es un , aadir DataSet cdigo
al formulario TextBox o Label. Utilizando la propiedad DataBindings para
s
poblar el especificar qu DataSet y qu campo enlazar

Enlace simple:
Utilizamos enlace simple
para vincular un control a
un simple campo en un . Por ejemplo, podramos usar enlace simple para un control de un control con
capacidad de vinculacin a datos, podemo con qu propiedad.

Ejemplo de SQL:
El siguiente ejemplo muestra cmo enlazar datos a un control TextBox:
Dim PubsSQLConn As SqlClient.SqlConnection
PubsSQLConn = New SqlClient.SqlConnection( )
PubsSQLConn.ConnectionString = "Integrated Security=True;" & _
"Data Source=local;Initial Catalog=Pubs;"
PubsSQLConn.Open( )

Dim PubsAdapter As SQLDataAdapter = New SQLDataAdapter _


("Select * from Titles", PubsSQLConn)

Dim PubsDataSet As DataSet = New DataSet( )


PubsAdapter.Fill(PubsDataSet)

TextBox1.DataBindings.Add(New Binding("Text", _ PubsDataSet,


"Authors.FirstName"))

Ejemplo de Jet 4.0:


El cdigo TextBox no difiere de cuando utilizamos un Jet 4.0. Slo el cdigo de Connection y DataAdapter, como
muestran los ejemplos anteriores.

Enlace complejo:
Utilizamos enlace complejo para enlazar un control a mltiples campos en un DataSet. Por ejemplo,
utilizamos enlace complejo para un control DataGrid. Utilizando la propiedad DataSource de estos
controles, podemos especificar la tabla a utilizar.

Ejemplo de Jet 4.0:


El siguiente ejemplo muestra cmo utilizar la propiedad DataSource de un control DataGrid para una base
de datos Jet 4.0. El cdigo que establece la propiedad est formateado en negrita.
Dim NWindOleDbConn As OleDb.OleDbConnection = _
New OleDb.OleDbConnection( )
Dim NWindAdapter As New OleDb.OleDbDataAdapter _
("Select * from Customers", NWindOleDbConn) Dim
NWindDataSet As DataSet = New DataSet( )

NWindOleDbConn.ConnectionString = "Provider= " & _


"Microsoft.Jet.OLEDB.4.0;datasource=c:\NWind.mdb"
NWindOleDbConn.Open( )
NWindAdapter.Fill(NWindDataSet)

DataGrid1.DataSource = NWindDataSet DataGrid1.DataMember =


"Customers"

Ejemplo de SQL: El cdigo TextBox no difiere de cuando utilizamos un proveedor SQL. Slo el cdigo de Connection
y DataAdapter, como muestran los ejemplos anteriores.

Cmo utilizar el Asistente para formularios de datos:

Introduccin:
El Asistente para formularios de datos nos ayuda a crear una aplicacin Windows Forms con controles enlazados a
datos. Los controles muestran datos desde cualquier fuente de datos que especifiquemos.

Ejecucin del Asistente para formularios de datos:


Ejecutar el Asistente para formularios de datos es como aadir un elemento a un proyecto existente.
Para ejecutar el Asistente para formularios de datos

1. Crear o abrir una aplicacin Windows Forms.

Nota. El asistente puede crear un formulario nicamente en un tipo de proyecto que soporte formularios.

2. Desde el men Archivo, hacer clic en Agregar nuevo elemento. Aparece el cuadro de dilogo Agregar nuevo
elemento.
3. En el panel Plantillas, hacer clic en Asistente para formularios de datos.
4. Poner un nombre en el formulario de datos y hacer clic en Abrir.
Se inicia el asistente.
5. Seguir los pasos del asistente.

Qu hace el asistente:
El Asistente para formularios de datos nos gua a travs del proceso completo de crear un formulario enlazado a
datos. Cuando hayamos finalizado, tendremos:

Un formulario Windows Form.


Controles enlazados a datos en el formulario.
Todos los componentes de datos necesarios para el formulario.
Mtodos que podemos invocar para leer y, para Windows Forms, escribir datos.

El formulario y controles:
Para visualizar datos, el formulario generado por el asistente incluye controles que estn enlazados a una fuente
de datos. Por ejemplo, el formulario puede contener un control de rejilla.

En un formulario Windows Forms, podemos seleccionar entre una rejilla o controles especficos que
muestren un registro cada vez. Podemos tambin generar botones que permitan a los usuarios navegar
entre registros e incluir botones para guardar los cambios a los registros y aadir nuevos.

Elementos de datos:
El Asistente para formularios de datos puede crear nuevos componentes de datos o utilizar componentes
que estn disponibles en nuestro proyecto. Un componente de datos para el formulario est formado por
varios elementos discretos:

Una conexin a una fuente de datos, como una base de datos.


Un adaptador de datos que referencia una sentencia SQL o procedimiento almacenado para obtener datos.
Un dataset tipado contiene los registros recuperados de la base de datos. El dataset incluye un esquema, un
archivo de clase dataset y una instancia del dataset en el formulario.

Si utilizamos el asistente para crear una fuente de datos, conectar nuestra aplicacin a la base de datos especificada.
Dentro de la base de datos, el asistente puede acceder a tablas o vistas.

El asistente puede opcionalmente crear y utilizar una referencia a un Servicio Web XML como la fuente de
datos. En ese escenario, se asume que el Servicio Web XML es capaz de devolver un dataset.

Podemos utilizar el asistente para acceder a mltiples tablas y establecer relaciones entre ellas. En este caso,
los controles en el formulario nos permiten visualizar tanto registros padre como hijos.

Mtodos Fill y Update:


Una de las tareas que necesitamos realizar es rellenar el dataset con datos de la base de datos. Por
defecto, para rellenar el dataset, el asistente genera un botn Load que invoca el cdigo que realiza la
operacin de llenado. Si estamos creando un nuevo dataset con el asistente, ste genera el mtodo Fill
automticamente. Si estamos trabajando con un dataset existente, el asistente nos ofrece estas opciones
para crear un mtodo Fill:

Seleccionar un mtodo existente


Si nuestro proyecto proporciona un mtodo que devuelve un dataset (tanto como valor de
retorno de una funcin o como un parmetro), podemos seleccionar ese mtodo y el asistente
genera cdigo para invocar ese mtodo.
Obviar el mtodo
Seleccione esta opcin si queremos rellenar el dataset por nosotros mismos en lugar de que el cdigo de
llenado se invoque automticamente.

Si estamos generando un formulario Windows Form, el asistente tambin puede generar un mtodo Update que
podemos invocar para enviar cambios desde el dataset de retorno a la fuente de datos.

Pasos adicionales:
Cuando el asistente finaliza y tenemos un nuevo formulario, ste est listo para ejecutarse. Hay algunos
pocos pasos adicionales que podemos desear realizar y una variedad de modos en los que puede ampliar
lo que el asistente ha realizado.
Por ejemplo, para trabajar con el formulario que acabamos de crear, necesitamos establecer el formulario como
el formulario de inicio para que podamos probarlo.

Para establecer el formulario de inicio en Windows Forms

1. En el Explorador de soluciones, hacer clic con el botn derecho en el proyecto, y a continuacin hacer
clic en Propiedades.
La pgina de propiedades del Proyecto se abre con las propiedades General visualizadas.

2. Seleccionar el formulario que queremos que sea el formulario de inicio desde la lista de Objeto inicial.

El asistente crea controles, elementos de datos y todo el cdigo necesario para ejecutar el
formulario. Podemos leer y modificar este cdigo si es necesario. Podemos querer realizar las
siguientes tareas para mejorar el formulario que crea el asistente:

Cambiar el aspecto y disposicin de los controles en el formulario.

Si no queremos utilizar el botn Load para rellenar el dataset, podemos mover el cdigo de llenado a otra
ubicacin. Un ejemplo tpico es moverlo desde el procesador de eventos del botn al mtodo de inicializacin
del formulario de modo que el dataset se rellena automticamente cuando el formulario se ejecuta.

Refinar las consultas que el asistente genera para que el adaptador de datos recupere un subconjunto de los
datos y que aada o modifique parmetros a los comandos del adaptador.
Aadir validacin o lgica de negocio al formulario.

Aadir lgica de navegacin para prevenir que ocurran excepciones cuando nos movemos ms all del primer
y ltimo registro.

Acceder a datos con DataReaders:


El beneficio de utilizar un DataSet es que nos ofrece una vista desconectada de la base de datos. Para
aplicaciones de larga ejecucin, es a menudo el mejor mtodo. Sin embargo, los desarrolladores de
aplicaciones Web generalmente realizan operaciones cortas y sencillas con cada peticin, como visualizar
datos. Para estas breves operaciones, generalmente no es eficiente mantener un objeto DataSet. En tales
casos, podemos utilizar un DataReader.

Seleccionar entre un DataReader y un DataSet


Al decidir si nuestra aplicacin debera utilizar un DataReader o un DataSet, consideremos el tipo de
funcionalidad que nuestra aplicacin requiere. Usar un DataSet cuando necesitemos realizar alguna de
las siguientes acciones:

Transmitir datos entre niveles o desde un Servicio Web XML.

Interactuar dinmicamente con datos, como cuando enlazamos a un control Windows Forms o combinamos
y relacionamos datos desde mltiples fuentes.
Almacenar localmente datos en cach para nuestra aplicacin.

Proporcionar una vista jerrquica XML de datos relacionales y utilizar herramientas como Transformaciones
XSL o una consulta XML Path Language (XPath) Query sobre nuestros datos.

Si deseamos obtener ms informacin, consultar XML and the DataSet en la documentacin del .NET
Framework SDK.

Realizar procesamiento intensivo sobre datos que no requiera una conexin abierta a la fuente de datos,
dejando la conexin disponible a otros clientes.

Si no necesitamos la funcionalidad que proporciona la clase DataSet, podemos mejorar el


rendimiento de nuestra aplicacin utilizando la clase DataReader para devolver nuestros datos
de modo slo-lectura/slo-reenvo. Aunque la clase DataAdapter utiliza un DataReader para
rellenar los contenidos de un DataSet, utilizando la clase DataReader en su lugar podemos
asegurar los siguientes beneficios de rendimiento:

La memoria que sera consumida por el DataSet estar de este modo disponible.

El procesamiento que sera requerido para crear y rellenar los contenidos del DataSet en este caso no ser
necesario.
En esta seccin, aprenderemos cmo leer datos desde una fuente de datos utilizando DataReaders.

Crear un DataReader:
Para minimizar la dificultad de tales situaciones, el DataReader ha sido diseado para producir un flujo
slo-lectura, slo-reenvo que se devuelve desde la base de datos. nicamente un registro a la vez est
siempre en memoria. Hay dos clases DataReader: SqlDataReader y OleDbDataReader.
Un DataReader mantiene la conexin abierta hasta que se cierra el DataReader.
Para utilizar un SqlDataReader, declarar un SqlCommand en vez de un SqlDataAdapter. El SqlCommand
expone un mtodo ExecuteReader que toma un SqlDataReader como parmetro. Observar que cuando
utilizamos un SQLCommand, debemos explcitamente abrir y cerrar SqlConnection.

Dim mySqlConnection As New -


SqlConnection("server=(local)\NetSDK; -
Trusted_Connection=yes;database=northwind") mySqlConnection.Open()

Dim mySqlCommand As New SqlCommand( -


"select * from customers", mySqlConnection)

Dim myReader As SqlDataReader = mySqlCommand.ExecuteReader()


'...
If Not (myReader Is Nothing) Then
myReader.Close() End If

If mySqlConnection.State = ConnectionState.Open Then


mySqlConnection.Close() End If

Gestin de errores con un DataReader:


Cuando utilizamos conexiones con el objeto DataReader, siempre deberamos utilizar un bloque Try/Finally para
garantizar que, si se lanza alguna excepcin, las conexiones se cerrarn.

Dim myReader As SqlDataReader = Nothing

Dim mySqlConnection As New -


SqlConnection("server=(local)\\NetSDK; -
Trusted_Connection=yes;database=northwind")

Dim mySqlCommand As New SqlCommand( -


"select * from customers", mySqlConnection)

Try mySqlConnection.Open()
myReader = mySqlCommand.ExecuteReader()
Catch e As Exception
Console.WriteLine(e.ToString())
Finally
If Not (myReader Is Nothing) Then myReader.Close()
End If

If mySqlConnection.State = ConnectionState.Open Then


mySqlConnection.Close() End If
End Try

Leer datos de un DataReader:

Una vez que hemos invocado el mtodo ExecuteReader del objeto Command, accedemos a un registro en
el DataReader invocando el mtodo Read. La posicin inicial en el DataReader se sita antes del primer
registro; por tanto, debemos invocar a Read antes de acceder a cualquier dato. Cuando no hay ms
registros disponibles, el mtodo Read devuelve False.

Leer campos desde el registro actual:


Para recuperar datos desde campos en el registro actual, podemos llamar un mtodo Get (por ejemplo:
GetDateTime, GetDouble, GetInt32 o GetString).
El parmetro del mtodo Get es el valor ordinal del campo que queremos leer. Por ejemplo, el siguiente
cdigo lee los campos CustomerID y CompanyName desde el registro actual del DataReader utilizando
el mtodo GetString:
Dim customerID As String = myReader.GetString(0)
Dim companyName As String = myReader.GetString(1)
Podemos tambin referenciar los campos de datos en el registro actual del DataReader por nombre y a
continuacin llamar a una funcin de conversin apropiada, como se muestra en el siguiente ejemplo de
cdigo:

Dim customerID As String = myReader("CustomerID").ToString()


Dim companyName As String = myReader("CompanyName").ToString()

Recorrer todos los registros:


Para recorrer todos los registros y mostrarlos por la consola en un DataReader, podemos utilizar un bucle While,
como se muestra en el siguiente cdigo de ejemplo:

While myReader.Read()
Console.Write(myReader("CustomerID").ToString() + _
" ")
Console.WriteLine(myReader("CompanyName").ToString()) End
While

Cerrar el DataReader:
Mientras que el DataReader est en uso, la conexin asociada est ocupada sirviendo el DataReader. Por tanto,
debemos llamar a Close para cerrar el DataReader cuando hayamos acabado de utilizarlo.

If Not (myReader Is Nothing) Then myReader.Close()


End If

If mySqlConnection.State = ConnectionState.Open Then


mySqlConnection.Close()
End If

Uso de DataSets frente a DataReaders:


El procedimiento general para acceder a bases de datos desde ASP.NET vara, dependiendo de si utilizamos un
DataSet o un DataReader:

Usando DataSets Usando DataReaders


1. Conectar a la base de datos utilizando 1. Conectar a la base de datos utilizando
SqlConnection u OleDbConnection. SqlConnection u OleDbConnection.
2. Almacenar la consulta de la base de datos en un 2. Abrir la conexin con el mtodo Open.
SqlDataAdapter o en un OleDbDataAdapter.

3. Poblar un DataSet desde el DataAdapter 3. Almacenar la consulta de la base de datos en


utilizando Fill. objetos SqlCommand u OleDbCommand.

4. Crear una nueva DataView para la tabla deseada. 4. Poblar un DataReader desde el Command
utilizando el mtodo ExecuteReader.

5. Enlazar un control servidor, como el DataGrid al 5. Invocar los mtodos Read y Get del
DataView. DataReader para leer datos.
6. Visualizar manualmente los datos.
7. Cerrar el DataReader y la conexin.

RESUMEN
Para el acceso a datos desde Visual Basic se utiliza el nuevo modelo de acceso a datos que proporciona la plataforma
.NET FrameWork : ADO.NET.
Basicamente, se implementarn a modo de ejemplo algunas aplicaciones Windows Forms que accedan a datos
utilizando la tecnologa ADO.NET.
Podriamos definir ADO.NET como:
Un conjunto de interfaces, clases y estructuras que permiten el acceso a datos desde la plataforma .NET de
Microsoft.

Una evolucin del API ADO de Microsoft.

Permite un modo de acceso a datos desconectado. Esto quiere decir que, a travs de ADO.NET, slo
estaremos conectados al servidor el tiempo estrictamente necesario para realizar la carga de los datos en el
DataSet.

Acceso Desconectado:
Mediante el acceso desconectado que proporciona la plataforma .NET a travs de ADO.NET, reduciremos
el nmero de conexiones aumentando la capacidad de carga de trabajo de nuestro servidor ya que se
soportarn una mayor cantidad de usuarios por unidad de tiempo.

Normalmente, cuando se recoge informacin de una Base de Datos es con el propsito de realizar algn
tipo de proceso con ella: mostrarla por pantalla, procesarla o enviarla a algn componente. Con
frecuencia, no slo necesitaremos una sola fila, sino un conjunto de ella. Y tambin ser frecuente que
necesitemos informacin que se encuentre en ms de una tabla (join de tablas). Lo que har la aplicacin
entonces ser cargarlos y tratarlos como un bloque compacto. En un modelo desconectado, sera ilgico
tener que conectar cada vez que queramos avanzar al registro siguiente para recoger la informacin de
dicho registro. As, lo que se hace para solucionar ese inconveniente es almacenar temporalmente toda
la informacin necesaria para poder trabajar posteriormente con ella. Esto es lo que representa un objeto
DataSet en el modelo ADO.NET.

Un objeto DataSet es una cach de registros recuperados de una Base de Datos que puede llegar a
contener ms de una tabla, basadas stas en tablas reales de la Base de Datos. Ser importante saber que
los DataSet son almacenes estticos. Es decir, no se enterarn de los cambios realizados en la Base de
Datos real, hasta que no se hayan recargado dichos datos. Por lo que ser necesario hacerlo si queremos
estar al dia.

En definitiva, un objeto DataSe es capaz de almacenar toda una Base de Datos lgica y siempre con
independencia del fabricante que la diseo, lo que da una gran flexibilidad de trabajo al modelo ADO.NET
de Microsoft.

Espacio de nombres System.Data:


Dentro del espacio de nombres System.Data nos encontramos con las siguientes clases, que son el eje central de
ADO.NET:

DataSet: Almacn de datos de ADO.NET. Representa una Base de Datos desconectada del proveedor de datos.
Capaz de almacenar datos y relaciones.

DataTable: Un contenedor de datos. Estructurado como un conjunto de filas (DataRow) y de columnas


(DataColumn).

DataRow: Registro que almacena x valores. Representacin de una fila/tupla de una Bases de Datos en
ADO.NET.

DataColumn: Contiene la definicin de una columna de una Base de Datos.


Espacios de nombres System.Data.Client y Sistem.Data.OleDb:
SqlCommand / OleDbCommand: Clases que representan un comando de SQL contra un SGBD.

SqlConnection / OleDbConnection: Clases que representan la etapa de conexin a un SGBD.

SqlCommandBuilder / OleDbCommandBuilder: Generador de comandos SQL de insercin, modificacin y


borrado de una consulta de SQL.

SqlDataReader / OleDbDataReader: Un lector de datos de slo avance, conectado a la Base de Datos

SqlDataAdapter / OleDbDataAdapter: Clase adaptadora entre un objeto DataSet y sus operaciones en la Base
de Datos.

Las Clases Connection:


En los ejemplos que se han utilizado, se ha empleado Microsoft SQL Server 2000 como SGBD, ya que ha sido
uno de los SGBD vistos en clase.

El primer paso en un acceso a datos consiste en establecer una conexin con la Base de Datos. Esta
operacin la llevaremos a cabo gracias a las clases Connection de ADO.NET, que permiten conectar a un
origen de datos.
En ADO.NET existen dos implementaciones para algunos de los objetos, cada uno especfico del origen de
datos al que vayamos a conectar. En este caso, somo queremos conectar con Microsoft SQL Server lo
haremos a travs de la clase System.Data.SqlClient.SqlConnection. Si quisieramos hacerlo con un
proveedor de datos OLEDB, lo hariamos a travs de la clase System.Data.OleDb.OleDbConnection.
Utilizaremos los mtodos Open() y Close() para conectar y desconectar de la Base de Datos,
respectivamente.

El constructor de la clase Connection que empleemos (SqlConnection o OleDbConnection) recibir como parmetro
la cadena de conexin que se aplique a su propiedad ConnectionString.

Veamos un ejemplo de cdigo que conecta y desconecta de un SGBD:


Imports System.Data.SqlClient
Try
'Crea el objeto Conexin
Dim conexion As New SqlConnection()
'Pasa la cadena de conexin
conexion.ConnectionString = server=(local); & _ integrated
security=sspi;database=ejemplo;uid=sa;pwd=;
'Conecta con la Base de Datos conexion.Open()
MessageBox.Show(Conectado!)
'Desconecta de la Base de Datos conexion.Close()

MessageBox.Show(Desconectado!)
Catch excepcion As SqlException
'Se puede producir algn error durante al conectar o durante la conexin
MessageBox.Show(Error al conectar con la Base de Datos) End
Try

Las clases Command:


Una vez que hemos establecido la conexin con el SGBD, la siguiente operacin que normalmente
querremos llevar a cabo ser la de enviarle sentencias para realizar diferentes operaciones con los datos.
Las clases Command de ADO.NET son las que nos permitirn llevar a cabo tales operaciones.
Un objeto Command nos va a permitir ejecutar una sentencia SQL sobre la fuente de datos con la que
hemos conectado. Tambin podremos obtener un cojunto de resultados. En este caso, esos datos pasarn
a otros tipos de objetos como DataReader o DataAdapter.

Los objetos Command se deben crear a partir de la conexin que ya se ha establecido y contendr una sentencia a
SQL a ejecutar sobre dicha conexin.
Entre sus propiedades ms comunes se encuentran las siguientes:

CommandText : Contiene la cadena de texto que representa la sentencia SQL que se ejecutar
sobre la fuente de datos.

Entre sus mtodos ms comunes se encuentran los siguientes:

ExecuteNonQuery : Ejecuta la sentencia SQL contenida en la propiedad CommandText del objeto


Command. En este caso la sentencia que se ejecuta debe ser una sentencia de un tipo que no
devuelva resultado alguno (UPDATE, DELETE, INSERT).
ExecuteReader : Ejecuta la sentencia SQL contenida en la propiedad CommandText del objeto
Command. En este caso si que se devolvern resultados. El resultado devuelto ser un objeto de
tipo DataReader

(SqlDataReader/OleDbDataReader) que nos permitir leer y recorrer los datos devueltos por la sentencia
SQL.

ExecuteScalar : Utilizada cuando slo queremos obtener el dato de la primera columna de la


primera fila. El resto de datos no se tienen en cuenta. Muy til cuando queremos recoger la
resultado, por ejemplo, de un COUNT(*) ya que este mtodo devuelve un tipo de dato Object
como resultado.

Veamos un par de ejemplos:


Insercin sobre una tabla
' Cadena de conexin
Dim conexion As New SqlConnection() conexion.ConnectionString
= server=(local) & _ integrated
security=sspi;database=ejemplo;uid=sa;pwd=;
' Crea la sentencia SQL Dim sentencia As String sentencia = INSERT INTO
Alumnos VALUES (123, Pablo,Neruda,'23/12/1996)

' Crea el comando SQL


Dim comando As New SqlCommand(sentencia, conexion)
Dim resultados As Integer '
Conecta con la Base de Datos
conexion.Open()
' Ejecuta la sentencia SQL (NonQuery ya que es una ' ' ' insercin). Slo
devuelve el nmero de filas afectadas resultados =
comando.ExecuteNonQuery() ' Desconecta de la Base de Datos
conexion.Close()
MessageBox.Show(Se han aadido & resultados & filas)

Consulta sobre una tabla


'Cadena de conexin
Dim conexion As New SqlConnection()
conexion.ConnectionString = server=(local);integrated security=sspi; &
database=ejemplo;uid=sa;pwd=;
'Crea la sentencia SQL
Dim sentencia As String
sentencia = SELECT COUNT(*) FROM Alumnos)
' Crea el comando SQL
Dim comando As New SqlCommand(sentencia, conexion)
Dim resultados As Integer
'Conecta con la Base de Datos conexion.Open()
'Ejecuta la sentencia SQL (NonQuery ya que es una ' ' ' insercin). Slo
devuelve el nmero de filas afectadas resultados =
comando.ExecuteScalar()
'Desconecta de la Base de Datos conexion.Close()
MessageBox.Show(Hay & resultados & alumnos.)
Las clases DataReader:
Un objeto DataReader permite la navegacin hacia delante y de slo lectura de los registros devueltos por
una consulta.

A diferencia de los objetos que trabajan en modo desconectado comentados anteriormente, este objeto permanece
conectado durante todo el tiempo que se est trabajando con l.

Para obtener un objeto DataReader tendremos que ejecutar un mtodo ExecuteReader() de un objeto Command
basado en una consulta SQL.

Estas son sus propiedades ms comunes:

FieldCount : Devuelve el nmero de columnas de la fila actual.

IsClosed : Indica si est (True) o no cerrado (False) el objeto DataReader.

Y sus mtodos ms comunes:

Close(): Cierra el objeto DataReader liberando los recursos.

Read(): Desplaza el cursor actual al siguiente registro permitiendo obtener los valores del mismo a travs del
objeto DataReader. Adems, devolver True si quedan ms elementos dentro del objeto DataReader y False
si hemos llegado al final del conjunto de registros. La posicin inicial de un objeto DataReader es justo antes
del primer registro por lo que lo primero que deberemos hacer ser realizar una llamada a este mtodo para
empezar a obtener valores.

Veamos un ejemplo:
'Crea la conexin
Dim conexion As New SqlConnection() conexion.ConnectionString =
server=(local); integrated security=sspi;
database=ejemplo;uid=sa;pwd;
'Crea el comando
Dim comando As New SqlCommand(SELECT * FROM Alumnos, conexion)
'Crea el DataReader
Dim lectorDatos As SqlDataReader
'Conecta con la Base de Datos
conexion.Open() lectorDatos =
comando.ExecuteReader()
'Recorre las filas devueltas en el DataReader y los muestra en un ListBox

While lectorDatos.Read()
Me.listaAlumnos.Items.Add(lectorDatos(Nombre))
End While
'Cierra el objeto DataReader lectorDatos.Close()
'Desconecta de la Base de Datos
conexion.Close()

La Clase DataSet:
DataSet es el almacn de datos por excelencia de ADO.NET.
Un objeto DataSet es capaz de almacenar y representar a una Base de Datos en memoria y desconectada del
proveedor de datos (Base de Datos) que contiene tablas y sus relaciones.

Cada tabla contenida dentro del objeto DataSet se encuentra disponible a travs de su propiedad Tables,
que es una coleccin de objetos System.Data.DataTable. Cada objeto System.Data.DataTable es una
coleccin de objetos System.Data.DataRow que representan las filas de la Base de Datos. Y siguiendo con
esto, cada objeto DataRow posee una coleccin de objetos DataColumn que representan cada una de las
filas de la fila actual.

Para poder crear e inicializar las tablas del DataSet deberemos hacer uso del objeto DataAdapter (SqlAdapter para
Microsoft SQL Server).

Al objeto DataAdapter le pasaremos como parmetro la cadena que represente la consulta que queremos
hacer, y que rellenar de datos el DataSet. Del objeto DataAdapter utilizaremos su mtodo Fill(), que tiene
dos parmetros: uno el objeto DataSet que se rellenar de datos y otro que ser el nombre que tendr la
tabla dentro del objeto DataSet.

A continuacin, se pueden ver los mtodo ms importantes de la clase DataSet:

Clear(): Elimina todos los datos almacenados en el objeto DataSet.

AcceptChanges() : Confirma todos los cambios realizados en el DataSet (los ltimos cambios).

GetChanges() : Devuelve un objeto DataSet que contiene nicamente los cambios realizados desde que se
cargaron los datos o desde la ltima vez que se llam al mtodo AcceptChanges().

RejectChanges() : Abandona todo los cambios realizados en el DataSet (los ltimos cambios).

Y una de sus propiedades ms importantes:

Tables : Devuelve una coleccin de objetos DataTable que representan cada una de las tablas contenidas en
el objeto DataSet.

El siguiente ejemplo muestra como rellenar un ListBox a travs de datos obtenidos de una Base de Datos
haciendo uso de objetos DataSet y DataAdapter:

'Crea la conexin
Dim conexion As New SqlConnection() conexion.ConnectionString =
server=(local); integrated security=sspi;
database=ejemplo;uid=sa;pwd;
'Crea el DataAdapter
Dim adaptadordatos As New SqlAdapter(SELECT * FROM Alumnos ORDER BY
Name, conexion)
'Crea el DataSet
Dim conjuntoDatos As New DataSet()
'Conecta a la Base de Datos, carga el DataSet y desconecta
'conexion.Open() adaptadorDatos.Fill(conjuntoDatos,
Alumnos) conexion.Close()
'Ahora desconectado, puede trabajar con los datos del DataSet
Dim tabla As DataTable
tabla = conjuntoDatos.Tables(Alumnos)
Dim fila As DataRow
For Each fila In tabla.Rows
'Muestra los datos en un ListBox
Me.listaAlumnos.Items.Add(fila.Item(Nombre) & &
fila.Item(Apellidos)
Next

Navegacin y edicin de registros en modo desconectado:


Anteriomente hemos visto como realizar operaciones con Bases de Datos, en modo conectado, sobre sus tablas
empleando objetos Command.

Pero como se ha comentado al principio de este documento, la arquitectura ADO.NET est preparada para
trabajar en modo desconectado, de forma que slo se recurra al almacn de datos cuando sea necesario:
consulta, manipulacin, o bien cuando una vez modificados queramos reflejar los cambios en la Base de
Datos real.

El objeto DataSet, combinado con un grupo de objetos dedicados al trabajo en modo desconectado
(DataAdapter, DataTable, DataRow, . . .) nos permitirn operaciones como puede ser el navegar por todos
los registros de una tabla almacenada en un DataSet. Adems, podremos modificar esos datos insertando,
modificando y borrando filas.

Todo esto se puede apreciar en el ejemplo Navegacin de Datos que acompaa a estos apuntes.

En dicho ejemplo se parte de una sencilla tabla para la cual se disea e implementa un interfaz que permite
tanto la consulta de los datos como la insercin, modificacin y eliminacin de filas, utilizando el modo
desconectado de ADO.NET.

El conocimiento es experiencia,
todo lo dems es informacin

Albert Einstein

Cuando llegas a comprender


cabalmente la raz del significado de la
palabra XITO, descubres que quiere
decir Sigue Adelante
Y LO HA LLENADO DEL ESPRITU SANTO DE DIOS, EN SABIDURA,
EN INTELIGENCIA, EN CIENCIA Y EN TODO ARTE. xodo 35:31

Potrebbero piacerti anche