Sunteți pe pagina 1din 11

PROGRAMACION II

UNIDAD II – APLICACIONES WEB UTILIZANDO


CONTROLES DE ACCESO A DATOS.

2. CLASES DEL FRAMEWORK .NET PARA EL ACCESO A DATOS


EN ASP .NET

MODELO DE OBJETOS ADO .NET.


El modelo de objetos ADO .NET proporciona una API para acceder a los sistemas de bases de datos
mediante la programación. ADO .NET se creó para que el .NET Framework sustituyera a la tecnología
ActiveX Data Objects® (ADO) de Microsoft, y el IDE de Visual Studio cuenta con herramientas de
programación visual que simplifican el proceso de utilizar una base de datos en sus proyectos.
Aunque tal vez no sea necesario trabajar directamente con muchos objetos ADO .NET para
desarrollar aplicaciones simples, es importante tener un conocimiento básico acerca de cómo
funciona el modelo de objetos ADO .NET para comprender el acceso a los datos en C#.

ESPACIOS DE NOMBRES.
El espacio de nombres System.Data es la raíz de la API de ADO .NET. Los otros espacios de nombres
importantes de ADO .NET, System.Data.OleDb y System.Data.SqlClient, contienen clases que
permiten a los programas conectarse con orígenes de datos y manipularlos; los orígenes de datos
son ubicaciones que contienen datos o un archivo XML. El espacio de nombres System.Data.OleDb
contiene clases diseñadas para trabajar con cualquier origen de datos, mientras que
System.Data.SqlClient cuenta con clases diseñadas para trabajar con cualquier origen de datos de
Microsoft SQL Server.
Un objeto de datos de la clase SqlConnection (espacio de nombres System.Data.SqlClient)
representa una conexión a un origen de datos; en específico, una base de datos de SQL Server. Un
objeto SqlConnection lleva el registro de la ubicación del origen de datos y de cualquier
configuración que especifique cómo se va a acceder el registro de la ubicación del origen de datos
y de cualquier configuración que especifique cómo se va a acceder a ese origen de datos. Una
conexión puede estar activa (es decir, abierta y que permita presentar los datos a, y recuperarlos
del origen de datos) o cerrada.
Un objeto de la clase SqlCommand (espacio de nombres System.Data.SqlClient) representa a un
comando de SQL que un DBMS puede ejecutar en una base de datos. Un programa puede utilizar
objetos SqlCommand para manipular un origen de datos a través de un objeto SqlConnection. El
programa debe abrir la conexión con el origen de datos antes de poder ejecutar uno o más objetos
SqlCommand y debe cerrar la conexión una vez que ya no se requiera el acceso al origen de datos.
Una conexión que permanece activa durante cierto tiempo para permitir múltiples operaciones de
datos se conoce como conexión persistente.

1 de 11
PROGRAMACION II

La clase DataTable (espacio de nombres System.Data) representa a una tabla de datos. Un objeto
DataTable contiene una colección de objetos DataRow que representan a los datos de la tabla. Un
objeto DataTable también tiene una colección de objetos DataColumn, los cuales describen las
columnas en una tabla. Tanto DataRow como DataColumn se encuentran en el espacio de nombres
System.Data. Un objeto de la clase System.Data.DataSet, que consta de un conjunto de objetos
DataTable y de la relación entre ellos, representa a una caché de datos: los datos que un programa
almacena en forma temporal en la memoria local. La estructura de un objeto DataSet imita a la
estructura de una base de datos relacional.

CLASES DE ASP .NET.


ADO .NET es un conjunto de clases que vienen con el framework Microsoft .NET para facilitar el
acceso a datos desde lenguajes administrados.
ADO .NET proporciona un puente entre los controles frontales y la base de datos subyacente. Los
objetos ADO .NET encapsulan todas las operaciones de acceso a datos y los controles interactúan
con estos objetos para mostrar datos, ocultando de esta forma los detalles del movimiento de datos.
La siguiente figura muestra una aproximación general de los objetos ADO .NET:

En esta figura pueden apreciarse las clases siguientes:

Clase Descripción

DataSet Representa un subconjunto de la base de datos y no tiene una conexión


continua hacia la base de datos, por lo que es necesario efectuar una
reconexión para actualizarla.

2 de 11
PROGRAMACION II

Clase Descripción

DataTable Representa las tablas en la base de datos.

DataRow Representa una fila en la tabla.

LA CLASES DATASET.
Esta clase representa un subconjunto de la base de datos. Algunas de las propiedades más
importantes de la clase DataSet son:

Propiedad Descripción

CaseSensitive Indica si las comparaciones de cadena en las tablas de datos son sensibles
a mayúsculas y minúsculas.

Container Obtiene el contenedor para el componente.

DataSetName Obtiene o establece el nombre del conjunto de datos actual.

DefaultViewManager Devuelve una vista de datos en el conjunto de datos.

DesignMode Indica si el componente está actualmente en modo diseño.

EnforceConstraints Indica si las reglas de restricción son seguidas cuando se intenta cualquier
operación de actualización.

Events Obtiene la lista de manejadores de eventos que están asociados al


componente.

ExtendedProperties Obtiene la colección de información personalizada de usuario asociada


con el DataSet.

HasErrors Indica si existe algún error.

IsInitialized Indica si el DataSet es inicializado.

Locale Obtiene o establece la información de configuración regional usada para


comparar cadenas en la tabla.

Namespace Obtiene o establece el espacio de nombres del DataSet.

Prefix Obtiene o establece un prefijo XML que proporciona un alias al espacio


de nombres del DataSet.
3 de 11
PROGRAMACION II

Propiedad Descripción

Relations Devuelve la colección de los objetos DataRelation.

Tables Devuelve la colección de objetos DataTable.

La tabla siguiente muestra algunos de los métodos más importantes de la clase DataSet:

Método Descripción

AcceptChanges Acepta todos los cambios efectuados desde que el DataSet fue
cargado o este método fue llamado.

BeginInit Empieza la inicialización del DataSet. La inicialización ocurre en


tiempo de ejecución.

Clear Limpia los datos.

Clone Copia la estructura del DataSet, incluyendo todos los esquemas


DataTable, relaciones y restricciones. No copia ningún dato.

Copy Copia tanto la estructura como los datos.

CreateDataReader() Devuelve un DataTableReader con un conjunto de resultados


por DataTable en la misma secuencia que aparecen las tablas
en la colección Tables.

CreateDataReader(DataTable[]) Devuelve un DataTableReader con un juego de resultados por


DataTable.

EndInit Finaliza la inicialización del conjunto de datos.

Equals(Object) Determina si el objeto especificado es igual al objeto actual.

Finalize Libera los recursos y efectúa otras limpiezas.

GetChanges Devuelve una copia de DataSet con todos los cambios hechos
desde que fue cargado o el método AcceptChages fue llamado.

GetChanges(DataRowState) Obtiene una copia de DatasSet con todos los cambios hechos
desde que fue cargado o el método AcceptChanges fue
llamado, filtrado por DataRowState.

GetDataSetSchema Obtiene una copia de XmlSchemaSet para el DataSet.

4 de 11
PROGRAMACION II

Método Descripción

GetObjectData Llena un objeto información de serialización con los datos


necesarios para serializar el DataSet.

GetType Obtiene el tipo de instancia actual.

GetXML Devuelve la representación XML de los datos.

GetXMLSchema Devuelve el esquema XSD para la representación XML de los


datos.

HasChanges() Devuelve un valor indicando si el DataSet tiene cambios,


incluyendo filas nuevas, eliminadas o modificadas.

HasChanges(DataRowState) Obtiene un valor indicando si el DataSet tiene cambios,


incluyendo filas nuevas, eliminadas o modificadas, filtradas por
DataRowState.

IsBinarySerialized Inspecciona el formato de la representación serializada del


DataSet.

Load(IDataReader, LoadOption, Llena un DataSet con los valores de un origen de datos usando
DataTable[]) el IDataReader proporcionado, usando un arreglo de instancias
DataTable para proporcionar la información del esquema y del
espacio de nombres.

Load(IDataReader, LoadOption, Llena un DataSet con los valores de un origen de datos usando
String[]) el IDataReader proporcionado, usando un arreglo de cadenas
para proporcionar los nombres para las tablas en el DataSet.

Merge() Fusiona los datos con datos de otro DataSet. Este método tiene
diferentes formas sobrecargas.

ReadXML() Lee un esquema XML y agrega datos en el DataSet. Este


método tiene diferentes formas sobrecargadas.

ReadXMLSchema(0) Lee un esquema XML en el DataSet. Este método tiene


diferentes formas sobrecargadas.

RejectChanges Deshace todos los cambios efectuados desde la última llamada


a AcceptChanges.

WriteXML() Escribe un esquema XML y datos desde el DataSet. Este


método tiene diferentes formas sobrecargadas.
5 de 11
PROGRAMACION II

Método Descripción

WriteXMLSchema() Escribe la estructura del DataSet como un esquema XML. Este


método tiene diferentes formas sobrecargadas.

LA CLASES DATATABLE.
Esta clase representa las tablas en la base de datos. Algunas de sus propiedades más importantes
son (la mayoría de estas propiedades son de sólo lectura, excepto la propiedad PrimaryKey):

Propiedad Descripción

ChildRelations Devuelve la colección de relaciones hijas.

Columns Devuelve la colección Columns.

Constraints Devuelve la colección Constraints.

DataSet Devuelve el DataSet padre.

DefaultView Devuelve una vista de la tabla.

ParentRelations Devuelve la colección ParentRelations.

PrimaryKey Obtiene o establece un arreglo de columnas como la clave primaria para


la tabla.

Rows Devuelve la colección Rows.

La tabla siguiente muestra algunos de los métodos más importantes de la clase DataTable:

Método Descripción

AcceptChanges Aplica todos los cambios efectuados desde el último AcceptChanges.

Clear Limpia todos los datos de la tabla.

GetChanges Devuelve una copia de DataTable con todos los cambios hechos desde que el
método AcceptChanges fue llamado.

GetErrors Devuelve un arreglo de filas con errores.

ImportRows Copia una nueva fila dentro de la tabla.

6 de 11
PROGRAMACION II

Método Descripción

LoadDataRow Encuentra y actualiza una fila específica, o crea una nueva si no encuentra
ninguna.

Merge Fusiona la tabla con otro DataTable.

NewRow Crea una nueva DataRow.

RejectChanges Deshace todos los cambios hechos desde la última llamada a AccepChanges.

Reset Reinicia la tabla a su estado original.

Select Devuelve un arreglo de objetos DataRow.

LA CLASES DATAROW.
Esta clase representa una fila en una tabla. Algunas de sus propiedades más importantes son:

Propiedad Descripción

HasErrors Indica si hay algún error.

Items Obtiene o establece el dato almacenado en una columna específica.

ItemsArray Obtiene o establece todos los valores para la fila.

Table Devuelve la tabla padre.

La tabla siguiente muestra algunos de los métodos más importantes de la clase DataRow:

Método Descripción

AcceptChanges Aplica todos los cambios efectuados desde que este método fue llamado.

BeginEdit Inicia la operación de edición.

CancelEdit Cancela la operación de edición.

Delete Elimina el DataRow.

EndEdit Finaliza la operación de edición.

GetChildRows Obtiene las filas hijas de la fila actual.

7 de 11
PROGRAMACION II

Método Descripción

GetParentRow Obtiene la fila padre.

GetParentRows Obtiene las filas padre del objeto DataRow.

RejectChanges Deshace todos los cambios efectuados desde la última llamada a


AcceptChanges.

Adicionalmente, se tienen los objetos siguientes:

Objeto Descripción

DataAdapter Actúa como mediador entre el objeto DataSet y la base de datos, lo cual le
ayuda al DataSet a contener datos de múltiples bases de datos u otros
orígenes de datos.

DataReader Es una alternativa a la combinación del DataSet y DataAdapter. Este objeto es


adecuado para el acceso de sólo lectura, tal como llenar una lista y luego
romper la conexión.

DbConnection Representa una conexión a la fuente de datos, que puede ser compartida
entre diferentes objetos comando.

DbCommand Representa el comando o un procedimiento almacenado enviado a la base de


datos para recuperar o manipular datos.

MEJORAS DE ADO .NET RESPECTO A ADO.


ADO .NET contiene varias mejoras respecto a su predecesor ADO. Algunas de estas mejoras se
muestran en la tabla siguiente:

Característica ADO ADO .NET

Representación de Usa el objeto RecordSet, que es Usa el objeto DataSet, que contiene
datos residentes en como una sola tabla. una o más tablas representadas por
memoria. objetos DataTable.

Relación entre Necesita una consulta JOIN para Proporciona el objeto DataRelation
varias tablas. combinar datos de diferentes para combinar datos de múltiples
tablas en una sola tabla de objetos DataTable sin necesidad de
resultados. una consulta JOIN.

8 de 11
PROGRAMACION II

Característica ADO ADO .NET

Navegación de Revisa las filas de forma Usa un modelo de navegación para


datos. secuencial. acceso no secuencial de filas en una
tabla. Da seguimiento a las relaciones
para navegar entre filas en una tabla
hacia la fila correspondiente en otra
tabla.

Acceso Soporta el acceso conectado, ADO .NET usa llamadas estandarizadas


desconectado. que es representado por el hacia el objeto DataSetCommand para
objeto Connection. Para comunicarse con la base de datos, la
comunicarse con la base de cual a su vez se comunica con el
datos, ADO primero llama al proveedor OLE DB. A veces el objeto
proveedor OLE DB. Sin DataSet se comunica directamente con
embargo, ADO también soporta las APIs proporcionadas por un sistema
el acceso a datos desconectado de administración de bases de datos.
por medio del objeto RecordSet
a pesar que no fue diseñado
para ello.

Programabilidad. Usa el objeto Connection para Usa la característica programática


enviar comandos para mapear tipeada de XML. El dato es
un origen de datos que tiene autodescrito porque los nombres para
una construcción de datos los elementos de código corresponden
subyacentes. al “problema de la vida real”
solucionado por el código. La
construcción subyacente de código
(como filas y tablas) no aparece,
haciendo el código más fácil de leer y
escribir.

Compartición de La clasificación COM para Transmite un DataSet con un archivo


datos transmitir un RecordSet XML. El formato XML no coloca
desconectados desconectado. Sólo aquellos restricciones sobre los tipos de datos.
entre capas o tipos de datos que están Por tanto, ADO .NET no requiere
componentes. definidos por el estándar COM conversiones entre tipos de datos,
soportan esta característica. Por resultando en una mejora en el
tanto, ADO necesita efectuar rendimiento.
conversiones de tipos de dato,
lo cual requiere recursos del
sistema, resultando en un bajo
rendimiento.

9 de 11
PROGRAMACION II

Característica ADO ADO .NET

Transmisión de Problemático porque los Soportado porque el objeto DataSet


datos entre firewalls son típicamente usa XML para representar datos. Al
firewalls. configurados para prevenir usar HTTP como el transporte, los
solicitudes a nivel de sistema, datos XML pasan a través de firewalls.
tales como clasificación COM.

Escalabilidad Los bloqueos a la base de datos Los accesos desconectados a datos de


y a las conexiones activas por la bases de datos sin retener los
largos períodos resultan en bloqueos a la base de datos ni a las
limitados recursos para la base conexiones activas por largos períodos
de datos, permitiendo que no limitan los recursos a bases de
menos usuarios puedan acceder datos. Esto permite que más usuarios
datos de forma simultánea. accedan datos de forma simultánea.

MODELO SIN CONEXIÓN DE ADO .NET.


Una ventaja de utilizar la clase DataSet es que trabaja sin conexión; el programa no necesita una
conexión persistente al origen de datos para trabajar con los datos en un objeto DataSet. En vez de
ello, se conecta al origen de datos para poblar el objeto DataSet (es decir, llenar los objetos
DataTable de DataSet con datos), pero se desconecta justo después de recuperar los datos
deseados. Después, accede a (y potencialmente manipula) los datos almacenados en el objeto
DataSet. El programa opera con esta caché local de datos, en vez de hacerlo con los datos originales
en el origen de datos. Si el programa realiza modificaciones en los datos en el objeto DataSet que
necesiten guardarse de manera permanente en el origen de datos, vuelve a conectarse al origen de
datos para realizar una actualización y después se desconecta lo más pronto posible. Por ende, el
programa no requiere de una conexión activa y persistente con el origen de datos.
Un objeto de la clase SqlDataAdapter (perteneciente al espacio de nombres System.Data.SqlClient)
se conecta a un origen de datos de SQL Server y ejecuta instrucciones de SQL, tanto para poblar un
objeto DataSet como para actualizar el origen de datos con base en el contenido actual de un objeto
DataSet. Un objeto SqlDataAdapter mantiene un objeto SqlConnection que abre y cierra según sea
necesario, para realizar estas operaciones mediante el uso de objetos SqlCommand.

10 de 11
PROGRAMACION II

Modo conectado Modo desconectado


 Conexión no permanente hacia el origen
 Mantiene activa la conexión hacia la base
de datos.
de datos.
 Los datos son replicados en la memoria
 Destinado a aplicaciones con:
principal.
o Transacciones de corta ejecución.
o Sólo pocos accesos paralelos.  Los cambios en la memoria principal NO
son iguales a los cambios en el origen de
o Datos actualizados.
datos.
o Muchos accesos paralelos y de larga
duración.

11 de 11

S-ar putea să vă placă și