Está en la página 1de 10

Capítulo 2

Arquitectura ADO.NET para


Manejo de Datos

Objetivo

Al finalizar el capítulo, el alumno:


 Conoce la arquitectura de ADO.NET
 Identifica los NET Data Providers.
 Conoce las principales interfaces y clases del modelo de objetos de
ADO.NET.
 Abre y cierra una conexión a la base de datos usando la clase
SQLConnection.
 Realiza consultas en la base de datos

Temas

1. Definición de ADO.NET
2. Arquitectura de ADO.NET
3. .Net Data Providers
4. Modelo de Objetos de ADO.NET
5. Conexión y consulta a SQL Server 2012

Programa .Net 4.5.1 Application Developer Visual Studio 2013 – C#


Arquitectura ADO.NET para Manejo de Datos 18

1. Definición de ADO.NET

ADO.NET es un extenso conjunto de clases de .Net que permiten recuperar y


manipular los datos provenientes de múltiples fuentes. Además, incorpora un
modelo de programación que incluye accesos nativos a fuentes de datos y
XML.

Del mismo modo, ADO.NET permite alcanzar los siguientes objetivos en el


desarrollo de una aplicación:

 Interoperabilidad. Porque emplea XML como el formato estándar, para


transferir información desde el origen de datos hacia los aplicativos
clientes. Dado que XML es un estándar de la industria, su utilización
hace que la comunicación de datos, entre fuentes distintas, sea mucho
más sencilla.

 Mantenimiento. Porque simplifica las tareas de mantenimiento de los


aplicativos.

 Rendimiento. En su modo conectado, ADO.NET trabaja directamente


con los tipos de datos de la base de datos, por lo tanto, evita el trabajo
de realizar conversiones de tipos. Además, los conectores nativos de
ADO.NET permiten establecer conexiones más rápidas con las fuentes
de datos.

Escalabilidad. ADO.NET conserva los recursos de un sistema, pues permite el


trabajo en entornos desconectados que no requieren consumir recursos de
conexiones duraderas con el servidor.
Arquitectura ADO.NET para Manejo de Datos 19

2. Arquitectura de ADO.NET

Existen dos componentes de ADO.NET que se pueden utilizar para acceder y


manipular data:

 Proveedores de datos de .NET Framework


Los proveedores de datos de .NET Framework son componentes diseñados
explícitamente para la manipulación de datos y el acceso rápido a datos de
solo lectura y solo avance. El objeto Connection proporciona conectividad
a un origen de datos; mientras que, el objeto Command permite tener
acceso a comandos de base de datos para devolver datos, modificar datos,
ejecutar procedimientos almacenados y enviar o recuperar información
sobre parámetros. De igual manera, DataReader proporciona una
secuencia de datos de alto rendimiento desde el origen de datos. Por
último, el objeto DataAdapter proporciona el puente entre el objeto DataSet
y el origen de datos. Asimismo, DataAdapter utiliza objetos Command para
ejecutar comandos SQL en el origen de datos, tanto para cargar DataSet
con datos, así como para reconciliar en el origen de datos, los cambios
aplicados a los datos incluidos en el DataSet.

 DataSet
Los DataSet de ADO.NET están expresamente diseñados para el acceso a
datos, independientemente del origen de datos. Como resultado, se puede
utilizar con múltiples y distintos orígenes de datos, con datos XML o para
administrar datos locales de la aplicación. Asimismo, DataSet contiene una
colección de uno o más objetos DataTable formados por filas y columnas
de datos, así como, información sobre claves principales, claves externas,
restricciones y de relación, las cuales se encuentran referidas con los datos
incluidos en los objetos DataTable.
Arquitectura ADO.NET para Manejo de Datos 20

3. .Net Data Providers

ADO.NET incluye los .Net Framework Data Providers los cuales permiten
conectarse a una base de datos, ejecutar comandos y retornar resultados. Del
mismo modo, crean una mínima capa entre la fuente de datos y el código, lo
cual incrementa performance y no sacrifica funcionalidad.

.Net Framework Data Provider para SQL Server

Provee de acceso optimizado a SQL Server 7.0 o superior y al Microsoft Data


Engine (MSDE). Para versiones inferiores a la 7.0, se podrá utilizar el .Net
Framework Data Provider para OLE DB.
El .Net Framework Data Provider para SQL Server, utiliza su propio protocolo
ligero para comunicarse directamente con el SQL Server, sin la necesidad de
una capa OLE DB u Open Data Base Conectivity.

Las clases para este proveedor están ubicadas en el namespace


System.Data.SqlClient.

.Net Framework Data Provider para OLE DB

Utiliza OLE DB nativo, a través de interoperabilidad COM, para habilitar el


acceso a datos. Para utilizar el .Net Framework Data Provider para OLE DB, se
debe usar un proveedor OLE DB.
Para lo cual, Microsoft ha probado los siguientes proveedores OLE DB con
ADO.Net:

 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)


 Microsoft OLE DB Provider for Oracle (MSDAORA); and
 OLE DB Provider for Microsoft Jet (Microsoft.Jet.OLEDB.4.0).
Arquitectura ADO.NET para Manejo de Datos 21

Las clases para este proveedor están ubicadas en el namespace


System.Data.OleDb.

.Net Framework Data Provider para ODBC

Utiliza el nativo ODBC Driver Manager, a través de interoperabilidad COM, para


habilitar el acceso a datos. Para utilizar el .Net Framework Data Provider para
ODBC, se debe usar un driver ODBC. Los siguientes ODBC drivers han sido
probados con ADO.Net:

 SQL Server
 Microsoft ODBC for Oracle
 Microsoft Access Driver (*.mdb).

Las clases para este proveedor están ubicadas en el namespace


System.Data.ODBC.

Proveedor EntityClient

Proporciona acceso a datos para las aplicaciones de Entity Data Model (EDM).
Utiliza el espacio de nombres System.Data.EntityClient.
Arquitectura ADO.NET para Manejo de Datos 22

4. Modelo de objetos de ADO.NET

ADO.NET especifica un modelo común de objetos para los .Net Framework


Data Providers. Las interfaces implementadas más comunes son:

 IDbConnection. Esta interface permite establecer una conexión con


una fuente de datos específica. Cada .Net Framework Data Provider
incluye una clase que implementa IDbConnection. Por ejemplo, el .Net
Framework Data Provider para SQL Server, incluye una clase llamada
SqlConnection.

 IDbCommand. Esta interface permite ejecutar un comando contra la


fuente de datos. Los comandos pueden incluir parámetros y pueden
ejecutarse dentro de una transacción. Cada .Net Framework Data
Provider incluye una clase que implementa el IDbCommand. Por
ejemplo, el .Net Frameworl Data Provider para SQL Server, incluye una
clase llamada SqlCommand.

 IDataReader. Esta interface permite lecturas del tipo forward-only y


read-only de una fuente de datos.

 IDataAdapter. Esta interface permite poblar de data, a un DataSet, el


cual almacena los cambios que se realicen sobre la data; cualquier
cambio es grabado de vuelta a la fuente de datos.
Arquitectura ADO.NET para Manejo de Datos 23

5. Conexión y consultas a SQL Server

Configuración de una cadena de conexión

En el caso de las aplicaciones Windows Application, debe almacenar las


cadenas de conexión en la sección <connectionStrings> del archivo app.config
de la aplicación. La cadena de conexión utilizada con la autenticación de
Windows debe incluir el atributo Trusted_Connection=Yes, o el atributo
equivalente Integrated Security=SSPI, tal y como se muestra a continuación.

<connectionStrings>
<add name="MiConexion1"
connectionString=
"Server=MiServer;Database=VentasDemo;Trusted_Connection=Yes;"/>

<add name="MiConexion2"
connectionString=
"Initial Catalog=MiServer;Data Source=VentasDemo;Integrated Security=SSPI;"/>
</connectionStrings>

Estos dos atributos son equivalentes y el resultado de ambos es la


autenticación de Windows para la base de datos.

Para tener acceso a una cadena de conexión en código, utilice


ConfigurationManager.ConnectionStrings, tal y como se muestra a
continuación.

VB.NET:
Dim strCnx As String = _
ConfigurationManager.ConnectionStrings("MiConexion1").ConnectionString

C#:
string strCnx = ConfigurationManager.ConnectionStrings("MiConexion1").ConnectionString;
Arquitectura ADO.NET para Manejo de Datos 24

Namespace System.Data.SqlClient

Clase Descripción

Representa un procedimiento almacenado o una


SqlCommand instrucción de Transact-SQL que se ejecuta en una
base de datos de SQL Server.

Representa una conexión abierta a una base de datos


SqlConnection
de SQL Server.

Proporciona una manera simple de crear y administrar


SqlConnectionStringBuilder el contenido de las cadenas de conexión que utiliza la
clase SqlConnection.

SqlCredential proporciona una manera más segura de


SqlCredential especificar la contraseña para un intento de inicio de
sesión con la autenticación de SQL Server.

Representa un conjunto de comandos de datos y una


conexión de base de datos que se utilizan para rellenar
SqlDataAdapter
un DataSet y actualizar una base de datos de SQL
Server.

Proporciona una forma de leer una secuencia de filas


SqlDataReader solo hacia delante en una base de datos de SQL
Server.

Representa un parámetro de un objeto SqlCommand y,


SqlParameter de manera opcional, su asignación a columnas de
DataSet.

Representa una transacción de Transact-SQL que se


SqlTransaction
realiza en una base de datos de SQL Server.
Arquitectura ADO.NET para Manejo de Datos 25

Crear una consulta a SQL Server

Para generar la consulta a SQL Server 2012 se emplean las clases


SQLConnection y SQLCommand como se muestra en el siguiente código:

VISUAL BASIC.NET

Dim strCnx As String = _


"Data Source=(local);Initial Catalog=VentasDemo;Integrated Security=SSPI;"

'Se crea el objecto Datatable como repositorio temporal


Dim dt As New DataTable

'Se crea el objeto Conexion y el Command para ejecutar Transact-SQL


Dim cnx As New SqlConnection(strCnx)
Dim cmd As New SqlCommand("SELECT * FROM TB_CATEGORIA ORDER BY COD_CAT",
cnx)

dt.Load(cmd.ExecuteReader)

'Se estable en enlace con el DataTable


ComboBox1.DataSource = dt
ComboBox1.DisplayMember = "Des_Cat"
ComboBox1.ValueMember = "Cod_Cat"

C#

string strCnx = "Data Source=(local);Initial Catalog=VentasDemo;Integrated Security=SSPI;";

//Se crea el objecto Datatable como repositorio temporal


DataTable dt = new DataTable();

//Se crea el objeto Conexion y el Command para ejecutar Transact-SQL


SqlConnection cnx = new SqlConnection(strCnx);
SqlCommand cmd = new SqlCommand("SELECT * FROM TB_CATEGORIA ORDER BY
COD_CAT", cnx);

dt.Load(cmd.ExecuteReader);

//Se estable en enlace con el DataTable


ComboBox1.DataSource = dt;
ComboBox1.DisplayMember = "Des_Cat";
ComboBox1.ValueMember = "Cod_Cat";

Información obtenida de MSDN


http://msdn.microsoft.com/es-es/library/8t72t3k4.aspx
Arquitectura ADO.NET para Manejo de Datos 26

Laboratorio nº 2

Crear un programa de mantenimiento que use operaciones para insertar, modificar,


eliminar y consultar usando los objetos de ADO.NET

También podría gustarte