Está en la página 1de 9

Sistemas UNI. Instructor: V. Carlos, Segura P.

Microsoft Partner MCAD

LABORATORIO ADO.NET – 4.

Derechos Reservados, solo para ser usados dentro de la


institución.
Derechos de Autor

El contenido de este laboratorio tiene todos los derechos reservados, por lo tanto no
se puede reproducir, transcribir, almacenar a un sistema de recuperación o de
alteración, asimismo la traducción a otro idioma de ninguna forma o por ningún
medio mecánico, manual, electrónico, magnético, óptico o de otro modo.

La persecución de una reproducción no autorizada tiene como


consecuencia la cárcel y/o multas.

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner MCAD

4 ADO.NET

1 Trabajar con Tablas Relacionadas y Vistas con ADO.NET


1.1 DataRelation:

Si tiene varias tablas en un conjunto de datos, la información en las tablas puede ser relacionada. Un
DataSet no tiene conocimiento inherente de esas relaciones; para trabajar con los datos en las tablas
relacionadas, por tanto, puede crear objetos DataRelation que describen las relaciones entre las tablas en
el conjunto de datos.

Los objetos DataRelation se pueden utilizar para analizar programáticamente los registros hijo
relacionados para un registro padre, y un registro padre desde un registro hijo. Puede utilizar un objeto
DataRelation para obtener registros relacionados desde una tabla hijo o padre. Un DataRelation
identifica columnas coincidentes en dos tablas de un DataSet.

Las relaciones permiten pasar de una tabla a otra dentro de un mismo DataSet. Los elementos esenciales
de un DataRelation son el nombre de la relación, el nombre de las tablas relacionadas y las columnas
relacionadas de cada tabla. Se pueden establecer relaciones con más de una columna por tabla, para lo
que debe especificar una selección de objetos DataColumn como columnas clave.

Cuando se agrega una relación al DataRelationCollection, se puede agregar también un


UniqueKeyConstraint y un ForeignKeyConstraint para imponer restricciones de integridad cuando se
realicen cambios en los valores de las columnas relacionadas.

El DataRelation une varias tablas y facilita el desplazamiento entre registros de tablas relacionadas. Cada
vez que se obtiene acceso a registros relacionados, se pasa un objeto DataRelation a los métodos
GetChildRows o GetParentRow. DataRelation es el objeto que determina la tabla relacionada que se
consultará para devolver los datos relacionados asociados con la llamada a los métodos anteriores. Para
obtener más información.

Para este capitulo tendremos que estudiar las tablas Products y Categories.

Determinar las Columna llave del Maestro:

DataColumn 1= DataSet.Tables(Nombre).Columns(Column ID)

Determinar las Columna llave del Detalle:

DataColumn 2= DataSet.Tables(Nombre).Columns(Column ID)

Agregar la Relación entre las Tablas:

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner MCAD

DataSet.Relations.Add( Nombre, DataColumn 1, DataColumn 2)

I.- Crear el siguiente formulario llamado frmDataRelation, con el siguiente diseño:

II.- Dentro del formulario crear lo siguiente:

Primero realizamos las consultas y con los respectivos Adapter y llenamos en el DataSet.

Segundo creamos los DataColumns para crear la relación entre las tablas:

Tercero, definimos el diseño de la siguiente manera:

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner MCAD

1.2 Estados de una Fila.

Los estados de una fila desempeñan un papel fundamental para determinar las filas que se van actualizar,
por ende una fila en un DataTable puede tener varios estados:

Estado de la Fila Descripción


UnChanged Indica que fila no ha cambiado desde la ultima vez que se
invoco a AcceptChanges
Added Se ha añadido una nueva fila y todavía no se invoco a
AcceptChanges
Modified La fila se ha modificado y todavía no se invoco a
AcceptChanges
Deleted La fila se ha eliminado y todavía no se invoco a
AcceptChanges

En el siguiente grafico cuando el usuario modifica una fila determinada, se produce la siguiente secuencia:

2.- RowState cambia de


1.- Fila 1 modificada Unchanged a Modified.

Fila (0) RowState del fila(1)

Fila (1) UnChanged

3.- El usuario invoca al Fila (2) Modified


método Salvar.

5.- Se encuentra una


DataTable
fila modificada. 6.- RowState cambia a
Unchanged.

4.- Se inspecciona el
RowState de cada fila RowState del fila(1)

Modified
7.- Se obtiene la
siguiente fila.
UnChanged

BeginEdit y EndEdit

La actualización simultanea de varias filas puede reducir el rendimiento ya que los eventos son
desencadenados en forma simultanea, para mantener el estado de una fila a UnChanged podemos usar
BeginEdit y finalizar con EndEdit para que se desencadene el conjunto de eventos.

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner MCAD

DataRowVersion

Determina la fila en sus estados de modificación, esto resulta muy útil cuando queremos validar los
cambios realizados por el usuario antes de guardarla en la base de datos.

1.3 Creación de Vistas con DataViews.

La clase DataView representa una vista personalizada que une datos de un DataTable para clasificar,
filtrar, buscar, editar y navegar. Un DataView es similar a una vista de un DataTable, que permite a los
programadores establecer un orden clasificado y filtrar en una vista de la tabla a parte.

ADO.NET proporciona un número de DataViews para habilitar distintas vistas de la misma tabla y
utilizarlas.

Un DataSetView es similar a una vista en la parte superior del DataSet y permite a los programadores
establecer un orden predeterminado y filtrar las tablas individuales. Además, permite a las DataViews
vincularse y utilizarse para DataBinding. De manera clásica, la unión de datos se utilizaba dentro de las
aplicaciones para aprovechar los datos almacenados en las bases de datos.

La unión de datos de Windows Forms le permite acceder a los datos desde bases de datos, así como a los
datos en otras estructuras, como arreglos y colecciones (suponiendo que se han cumplido un mínimo de
requerimientos).

En Windows Forms, puede unir una amplia gama de estructuras, desde sencillos (arreglos) hasta
complejas (filas de datos, vistas de datos, etc.). Como mínimo, una estructura que se pueda unir debe
soportar la interfaz IList.

Representa una vista personalizada que puede enlazar datos de un DataTable para ordenación, filtrado,
búsqueda, edición y exploración.

Propiedades Públicas de un DataView:

AllowDelete
Establece u obtiene un valor que indica si se permite eliminar.

AllowEdit
Obtiene o establece un valor que indica si se permite editar.

AllowNew
Obtiene o establece un valor que indica si se pueden agregar las nuevas filas mediante
el método AddNew.

RowFilter
Obtiene o establece la expresión utilizada para filtrar las filas que se ven en el
DataView.

Sort
Obtiene o establece las columnas y el criterio de ordenación de DataView.

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner MCAD

Table
Obtiene o establece el DataTable de origen.

Las Opciones del Estado de los Registros DataViewRowState:


En la creación de la vista utilizando el constructor son las siguientes:

CurrentRows
La versión de fila Current de todas las filas Unchanged, Added y Modified. Éste es el
valor predeterminado.

Added
La versión de fila Current de todas las filas Added.

Deleted
La versión de fila Original de todas las filas Deleted.

ModifiedCurrent
La versión de fila Current de todas las filas Modified.

ModifiedOriginal
La versión de fila Original de todas las filas Modified.

None
Ninguna fila.

OriginalRows
La versión de fila Original de todas las filas Unchanged, Modified y Deleted.

Unchanged
La versión de fila Current de todas las filas Unchanged.

I.- Primero crearemos una clase con el nombre clsGenerica, en esta clase debe contener las siguiente
variable publicas:

Public EstError As Boolean


Public msgError As String

II.- Dentro de esta clase crear las siguientes métodos:

Primero, definimos el método que nos devuelve un método para que devuelva un DataSet:

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner MCAD

Segundo, definimos el método que nos devuelve un método para que devuelva un DataTable:

Tercero, definimos el método que nos devuelve un método para que devuelva un DataTable:

Cuarto, realizar un mantenimiento para el DataTable.

III.- Crear un formulario con el nombre siguiente frmVistas, el diseño debe contener los siguientes
controles, el diseño debe quedar como sigue:

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner MCAD

IV.- El formulario debe contener la siguiente variable:

Dim Sql As String = "SELECT CUSTOMERID,COMPANYNAME,CONTACTNAME,ADDRESS," + _


"COUNTRY,PHONE FROM CUSTOMERS"

V.- En el load del formulario creamos lo siguiente:

Primero, crear una vista sencilla

Segundo, crear una vistas por estados de fila

VI.- Al ejecutar el aplicativo se debe mostrar lo siguiente:

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner MCAD

LABORATORIO:

I.- Crear los siguientes procedimientos en la base de datos NorthWind :

II.- Crear el siguiente formulario:

En el cual los filtros representaran la creación de las vistas respectivas para la muestra de los clientes y
luego para poder visualizar los estados de las filas de los clientes según los respectivos botones:

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

También podría gustarte