Você está na página 1de 12

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

LABORATORIO ADO.NET – 6.

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 1


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

6 ADO.NET

1 Restricciones, DataColumn, Columnas Calculadas y


Exportación en Excel.
1.1 DataColumn.

Los DataColumn representa el esquema de una columna en un DataTable, el DataColumn es el bloque


para crear el esquema de un DataTable. Para construir el esquema de un DataTable, se agregan uno o
varios objetos DataColumn al DataColumnCollection.

Los DataColumn tiene la propiedad DataType que determina el tipo de datos que va a contener el
DataColumn, se puede restringir el tipo de datos a enteros, cadenas o decimales. Puesto que estos datos
incluidos en el objeto DataTable normalmente se vuelven a combinar en su origen de datos original, se
debe hacer coincidir los tipos de los datos con los del origen de datos obtenidos de la base de datos.

Otras propiedades como AllowDBNull, Unique y ReadOnly aplican restricciones al ingresar datos y
actualización de datos, lo que contribuye a garantizar la integridad de éstos. Además se pueden utilizar las
propiedades AutoIncrement, AutoIncrementSeed y AutoIncrementStep para controlar la generación
automática de datos.

Propiedades importantes de una Columna:

Propiedad Descripción

Obtiene o establece un valor que indica si en esta columna se


AllowDBNull
admiten valores null para las filas que pertenecen a la tabla.

Obtiene o establece un valor que indica si la columna incrementa


AutoIncrement automáticamente el valor de la columna para las nuevas filas
que se agregan a la tabla.

DataType Obtiene o establece el tipo de datos almacenados en la columna.

Obtiene o establece el valor predeterminado para la columna al


DefaultValue
crear nuevas filas.

Obtiene o establece la expresión utilizada para filtrar filas,


Expresión calcular los valores de una columna o crear una columna
agregada.

Obtiene o establece un valor que indica si la columna admite


ReadOnly cambios justo después de que se haya agregado una fila a la
tabla.

Algo muy importante es que en la expresión no se pueden hacer operaciones matemáticas como
multiplicar dos columnas (o sumar, restar, dividir, etc) .

Sum (Cantidad * Precio)

UNIVERSIDAD NACIONAL DE INGENIERIA 2


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

Propiedad Expressión:

Agregar expresiones de columnas, es una de las nuevas funcionalidades que encontramos en


ADO.NET es la posibilidad de crear columnas cuyo contenido sean expresiones, es decir columnas
calculadas:

DataSet.Tables( Nombre ).Columns.Add( “Nombre Campo”, “Tipo dato”, “Expresión” )

Por ejemplo de la tabla Products seria así:

También podría ser de la siguiente manera:

Con Condicionales:

Expresiones con funciones de agregado


Para terminar con las expresiones de columna, se permiten varias funciones de datos agregados como
suma, media, máximo, etc..., ejemplo:

Propiedad Compute
Propiedad de un DataTable que determina una operación basado en los datos de la columna indicada:

Cuales son las expresiones válidas cuando utilicemos Compute:

Count(Campo), donde Campo sería el nombre de la columna.


Sum (Suma)
Avg (Promedio)
Min (Mínimo)
Max (Máximo)
Count(Recuento)
StDev (Desviación estadística estándar)
Var (Varianza estadística)

UNIVERSIDAD NACIONAL DE INGENIERIA 3


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

Agregando Datos calculados en el DataGridView:

Definir una clave principal para una tabla.

Mayormente una tabla de base de datos tiene una columna o grupo de columnas que identifican de
manera exclusiva cada fila de la tabla llamada llaves de la tabla. Esta columna o grupo de columnas de
identificación se denomina clave principal.

Identificar una única DataColumn como la PrimaryKey para una DataTable, la tabla establece
automáticamente la propiedad AllowDBNull de la columna como false y la propiedad Unique como true.
Para las claves principales de varias columnas sólo se establece de forma automática la propiedad
AllowDBNull en false.

El PrimaryKey de una DataTable es una propiedad que recibe como valor una matriz de uno o varios
objetos DataColumn, como se muestra en los ejemplos siguientes. En este ejemplo se establece un llave
primaria:

Agregar restricciones a una tabla.

Para agregar restricciones a una tabla se pueden utilizar para imponer restricciones sobre los datos de un
objeto DataTable con el fin de mantener la integridad de los datos.

La restricción es una regla automática que se aplica a una columna o a varias columnas relacionadas
mediante un DataRelation, que determina cómo proceder cuando se modifica de alguna manera el valor
de una fila..

Existen dos tipos de restricciones en ADO.NET al crear un DataRelation:


ForeignKeyConstraint y UniqueConstraint. Que de forma predeterminada, las dos restricciones se
crean automáticamente al crear una relación entre dos o más tablas agregando, sin embargo, se puede
deshabilitar este comportamiento especificando CreateConstraints = false al crear la relación.

UNIVERSIDAD NACIONAL DE INGENIERIA 4


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

ForeignKeyConstraint
ForeignKeyConstraint impone reglas sobre cómo se propagan las actualizaciones y eliminaciones a
las tablas relacionadas. Por ejemplo, si se actualiza o elimina el valor de una fila de una tabla y el
mismo valor también se utiliza en una o varias tablas relacionadas, ForeignKeyConstraint
determinará qué sucede en las tablas relacionadas.

Las propiedades DeleteRule y UpdateRule de ForeignKeyConstraint definen la acción que se ha de


realizar cuando el usuario intente eliminar o actualizar una fila en una tabla relacionada. En la
tabla siguiente se describen las distintas configuraciones disponibles para las propiedades
DeleteRule y UpdateRule de ForeignKeyConstraint

Cascade: Elimina o actualiza las filas relacionadas.

SetNull: Establece los valores de las filas relacionadas en DBNull.

SetDefault: Establece los valores de las filas relacionadas en el valor predeterminado.

None: No realiza ninguna acción en las filas relacionadas. Éste es el valor


predeterminado.

ForeignKeyConstraint puede restringir, además de propagar, los cambios en las columnas


relacionadas. Dependiendo de las propiedades establecidas para la ForeignKeyConstraint de una
columna, realizar ciertas operaciones en la fila primaria generará una excepción. Por ejemplo, si la
propiedad DeleteRule de ForeignKeyConstraint es None, una fila primaria no se puede eliminar si
tiene filas secundarias.

UNIVERSIDAD NACIONAL DE INGENIERIA 5


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

1.2 CreateDataReader y DataTableReader

El Método CreateDataReader que devuelve un DataSet o DataTable entrega un objeto


DataTableReader que corresponde a los datos incluidos en este objeto DataTable o DataTables dentro de
un DataSet.

El DataTableReader presenta el contenido de una DataTable o un DataSet con formato de uno o más
conjuntos de resultados de sólo lectura y de sólo avance.

Al crear un DataTableReader desde una DataTable, el objeto DataTableReader resultante contiene un


conjunto de resultados con los mismos datos que la DataTable desde la que se creó, con excepción de las
filas que se hayan marcado como eliminadas. Las columnas aparecen en el mismo orden que en la
DataTable original.

Un DataTableReader puede contener varios conjuntos de resultados si se ha creado llamando a


CreateDataReader. Los resultados se encuentran en el mismo orden que las DataTables de la colección
Tables del objeto DataSet.

UNIVERSIDAD NACIONAL DE INGENIERIA 6


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

1.3 Trabajando con ADO.NET y Excel.

Microsoft Excel posee la funcionalidad de crear tablas para poder ser usado en ADO.NET como si
estuviéramos trabajando con una tabla de una base de datos, para esto seguiremos los siguientes pasos:

Utilizar objetos de acceso a datos con hojas de cálculo de Excel

Mediante los controladores ISAM (Método de acceso secuencial indexado) instalables, podemos abrir y
manipular la información contenida en una hoja de cálculo Excel lo mismo que si se tratara de una tabla
de una base de datos cualquiera.

Para instalar el ISAM se realiza al instalar Visual Basic, ejecute el programa de instalación de Visual Basic
y seleccione los controladores apropiados para proceder a su instalación.

Durante el proceso de instalación, el controlador IISAM escribe la información de configuración en el


Registro de Windows, estableciendo unos valores predeterminados que posteriormente podemos modificar
su comportamiento utilizando para ello cualquiera de los métodos siguientes:

Utilizando el editor del Registro (no recomendado).


Utilizando las funciones API de acceso al Registro, antes de establecer la conexión con el origen
de datos (requiere el conocimiento de dichas funciones API).
Mediante la cadena de conexión, en el momento de acceder a los datos. Es el método
recomendado debido a que no modificará ningún valor del registro, porque los valores
establecidos en la cadena, sólo serán válidos para un archivo de datos en particular. Este es el
método que se utilizará a lo largo del presente artículo.

Primera Forma de Realizar consultas

I.- Primero crear una tabla en Excel y crear una hoja de Excel, con el nombre Vendedores.xsl

II.- Crear en la hoja la siguiente tabla, como se muestra la figura:

III.- Definiremos esta tabla en el Excel, de la siguiente manera, primero seleccionar toda la tabla, luego Ir
al menú:
Insertar -> Nombre -> Definir

UNIVERSIDAD NACIONAL DE INGENIERIA 7


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

IV.- Dentro de ella colocaremos el nombre de la tabla “VENTAS”

V.- Hasta aquí hemos creado una tabla en Excel agregarlo al proyecto, ahora la llamaremos desde
ADO.NET para tratarlo como una tabla.

UNIVERSIDAD NACIONAL DE INGENIERIA 8


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

VI.-Creando la Interfaz para mostrar la tabla Clientes.

VII.- Realizar los siguiente imports dentro del formulario.

VIII.- Debemos declarar las siguientes variables:

IX.- Dentro del botón para llenar el Excel codificaríamos lo siguiente:

X.- Completar para la muestra de la información en el DataGridView

XI.- Probar y ejecutar el ejemplo.

UNIVERSIDAD NACIONAL DE INGENIERIA 9


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

Segunda Forma de Realizar consultas

I.- Crear el Excel con el nombre autores y la hoja del Excel con el siguiente nombre “LISTA”

II.- Realizar los siguiente imports dentro del formulario para mostrar la hoja de Excel.

III.- Debemos declarar las siguientes variables:

IV.- En el load del formulario podríamos crear lo siguiente:

V.- Incluso podríamos agregar comandos para la modificación de esta forma:

UNIVERSIDAD NACIONAL DE INGENIERIA 10


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

VI.- Terminar de completar, con la ayuda del instructor:

Laboratorio:

I.- Se debe crear un Excel con el nombre Personal, el cual debe contener 3 hojas con los siguiente
nombres:

EMPLEADOS:

PLANILLA:

UNIVERSIDAD NACIONAL DE INGENIERIA 11


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

DESCUENTOS:

II.- Crear el siguiente formulario que implemente las siguientes funcionalidades:

UNIVERSIDAD NACIONAL DE INGENIERIA 12


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

Você também pode gostar