Proveedores de datos de .NET Framework
Los proveedores de datos de .NET Framework sirven para conectarse a una base de datos, ejecutar comandos y recuperar resultados. Esos resultados se procesan directamente, se colocan en un DataSet con el fin de que el usuario pueda verlos cuando los necesite, se combinan con datos de varios orígenes o se utilizan de forma remota entre niveles. Los proveedores de datos de .NET Framework son ligeros, de manera que crean una capa mínima entre el origen de datos y el código, con lo que aumenta el rendimiento sin sacrificar funcionalidad.
En la tabla siguiente figuran los proveedores de datos que se incluyen en .NET Framework.
proveedor de datos de .NET Framework (.NET Framework data provider) | Descripción |
---|---|
Proveedor de datos .NET Framework para SQL Server | Proporciona acceso de datos para Microsoft SQL Server. Utiliza el espacio de nombres System.Data.SqlClient . |
Proveedor de datos .NET Framework para OLE DB | Para orígenes de datos que se exponen mediante OLE DB. Utiliza el espacio de nombres System.Data.OleDb . |
Proveedor de datos .NET Framework para ODBC | Para orígenes de datos que se exponen mediante ODBC. Utiliza el espacio de nombres System.Data.Odbc . |
Proveedor de datos .NET Framework para Oracle | Para orígenes de datos de Oracle. El proveedor de datos de .NET Framework para Oracle es compatible con la versión 8.1.7 y posteriores del software de cliente de Oracle y utiliza el espacio de nombres System.Data.OracleClient. |
Proveedor para EntityClient | Proporciona acceso a datos para las aplicaciones de Entity Data Model (EDM). Utiliza el espacio de nombres System.Data.EntityClient . |
Proveedor de datos de .NET Framework para SQL Server Compact 4.0. | Proporciona acceso a datos para Microsoft SQL Server Compact 4.0. Usa el espacio de nombres System.Data.SqlServerCe . |
Objetos principales de los proveedores de datos .NET Framework
En la tabla siguiente se describen los cuatro objetos centrales que constituyen un proveedor de datos de .NET Framework.
Object | Descripción |
---|---|
Connection |
Establece una conexión a un origen de datos determinado. La clase base para todos los objetos Connection es DbConnection . |
Command |
Ejecuta un comando en un origen de datos. Expone Parameters y puede ejecutarse en el ámbito de un objeto Transaction desde Connection . La clase base para todos los objetos Command es DbCommand . |
DataReader |
Lee un flujo de datos de solo avance y solo lectura desde un origen de datos. La clase base para todos los objetos DataReader es DbDataReader . |
DataAdapter |
Llena un DataSet y realiza las actualizaciones necesarias en el origen de datos. La clase base para todos los objetos DataAdapter es DbDataAdapter . |
Además de las clases principales citadas en la tabla expuesta anteriormente en este documento, los proveedores de datos de .NET Framework también incluyen las que se enumeran en la tabla siguiente.
Object | Descripción |
---|---|
Transaction |
Incluye comandos en las transacciones que se realizan en el origen de datos. La clase base para todos los objetos Transaction es DbTransaction . ADO.NET es también compatible con las transacciones que usan clases en el espacio de nombres System.Transactions . |
CommandBuilder |
Un objeto del asistente que genera automáticamente las propiedades de comando de un DataAdapter o que obtiene de un procedimiento almacenado información acerca de parámetros con la que puede rellenar la colección Parameters de un objeto Command . La clase base para todos los objetos CommandBuilder es DbCommandBuilder . |
ConnectionStringBuilder |
Un objeto del asistente que proporciona un modo sencillo de crear y administrar el contenido de las cadenas de conexión utilizadas por los objetos Connection . La clase base para todos los objetos ConnectionStringBuilder es DbConnectionStringBuilder . |
Parameter |
Define los parámetros de entrada, salida y valores devueltos para los comandos y procedimientos almacenados. La clase base para todos los objetos Parameter es DbParameter . |
Exception |
Se devuelve cuando se detecta un error en el origen de datos. Cuando se detecta un error en el cliente, los proveedores de datos de .NET Framework producen una excepción de .NET Framework. La clase base para todos los objetos Exception es DbException . |
Error |
Expone la información relacionada con una advertencia o error devueltos por un origen de datos. |
ClientPermission |
Se proporciona para los atributos de seguridad de acceso del código de los proveedores de datos de .NET Framework. La clase base para todos los objetos ClientPermission es DBDataPermission . |
Proveedor de datos .NET Framework para SQL Server (SqlClient)
El proveedor de datos de .NET Framework para SQL Server (SqlClient) usa su propio protocolo para comunicarse con SQL Server. Es ligero y presenta un buen rendimiento porque está optimizado para acceder a SQL Server directamente sin agregar una capa de OLE DB o de conectividad abierta de bases de datos (ODBC). En la ilustración siguiente se compara el proveedor de datos de .NET Framework para SQL Server con el proveedor de datos de .NET Framework para OLE DB. El proveedor de datos de .NET Framework para OLE DB se comunica con un origen de datos de OLE DB tanto mediante el componente de servicio OLE DB, que proporciona agrupación de conexiones y servicios de transacción, como del proveedor OLE DB correspondiente al origen de datos.
Nota:
El proveedor de datos de .NET Framework para ODBC cuenta con una arquitectura similar a la del proveedor de datos de .NET Framework para OLE DB; por ejemplo, llama a un componente de servicio ODBC.
El proveedor de datos de .NET Framework para clases de SQL Server clases se encuentra en el espacio de nombres System.Data.SqlClient.
El proveedor de datos de .NET Framework para SQL Server admite tanto transacciones locales como distribuidas. En el caso de las transacciones distribuidas, el proveedor de datos de .NET Framework para SQL Server se inscribe de forma predeterminada y automática en una transacción y obtiene los detalles de esta a través de los servicios de componentes de Windows o System.Transactions. Para más información, consulte Transacciones y simultaneidad.
En el siguiente ejemplo de código se muestra cómo puede incluir el espacio de nombres System.Data.SqlClient
en sus aplicaciones.
Imports System.Data.SqlClient
using System.Data.SqlClient;
Proveedor de datos .NET Framework para OLE DB
El proveedor de datos de .NET Framework para OLE DB (OleDb) usa OLE DB nativo con el fin de habilitar el acceso a datos mediante la interoperabilidad COM. El proveedor de datos de .NET Framework para OLE DB admite tanto transacciones locales como distribuidas. En el caso de las transacciones distribuidas, el proveedor de datos de .NET Framework para OLE DB se inscribe de forma predeterminada y automática en una transacción y obtiene detalles de transacción a través de los servicios de componentes de Windows. Para más información, consulte Transacciones y simultaneidad.
En la siguiente tabla se muestran los proveedores probados con ADO.NET.
Controlador | Proveedor |
---|---|
SQLOLEDB | Proveedor Microsoft OLE DB para SQL Server |
MSDAORA | Proveedor Microsoft OLE DB para Oracle |
Microsoft.Jet.OLEDB.4.0 | Proveedor OLE DB para Microsoft Jet |
Nota:
No se recomienda el uso de una base de datos de Access (Jet) como origen de datos para aplicaciones multiproceso, como las aplicaciones de ASP.NET. Si debe usar Jet como origen de datos para una aplicación ASP.NET, ha de ser consciente de que las aplicaciones ASP.NET que se conectan a una base de datos Access pueden tener problemas de conexión.
El proveedor de datos de .NET Framework para OLE DB no admite las interfaces de la versión 2.5 de OLE DB. Los proveedores de OLE DB que requieren compatibilidad con interfaces de OLE DB 2.5 no funcionarán correctamente con el proveedor de datos de .NET Framework para OLE DB. Entre ellos se incluye el proveedor Microsoft OLE DB para Exchange y el proveedor Microsoft OLE DB para la publicación en Internet.
El proveedor de datos de .NET Framework para OLE DB no funciona con el proveedor de OLE DB para ODBC (MSDASQL). Para acceder a un origen de datos ODBC mediante ADO.NET, use el proveedor de datos de .NET Framework para ODBC.
Las clases del proveedor de datos de .NET Framework para OLE DB se encuentran en el espacio de nombres System.Data.OleDb. En el siguiente ejemplo de código se muestra cómo puede incluir el espacio de nombres System.Data.OleDb
en sus aplicaciones.
Imports System.Data.OleDb
using System.Data.OleDb;
Proveedor de datos .NET Framework para ODBC
El proveedor de datos de .NET Framework para ODBC (Odbc) usa el Administrador de controladores (DM) ODBC nativos para habilitar el acceso a datos. El proveedor de datos de ODBC admite tanto transacciones locales como transacciones distribuidas. En el caso de las transacciones distribuidas, el proveedor de datos OBDC se inscribe de forma predeterminada y automática en una transacción y obtiene los detalles a través de los servicios de componentes de Windows. Para más información, consulte Transacciones y simultaneidad.
En la siguiente tabla se muestran los controladores ODBC que se han probado con ADO.NET.
Controlador |
---|
SQL Server |
Microsoft ODBC para Oracle |
Microsoft Access Driver (*.mdb) |
Las clases del proveedor de datos de .NET Framework para ODBC se encuentra en el espacio de nombres System.Data.Odbc.
En el siguiente ejemplo de código se muestra cómo puede incluir el espacio de nombres System.Data.Odbc
en sus aplicaciones.
Imports System.Data.Odbc
using System.Data.Odbc;
Nota
El proveedor de datos de .NET Framework para ODBC necesita MDAC 2.6 o una versión posterior, pero se recomienda MDAC 2.8 SP1.
Proveedor de datos .NET Framework para Oracle
El proveedor de datos de .NET Framework para Oracle (OracleClient) permite el acceso a datos de orígenes de datos de Oracle mediante el software de conectividad de cliente de Oracle. El proveedor de datos es compatible con la versión 8.1.7 o posterior del software de cliente de Oracle. El proveedor de datos admite tanto transacciones locales como transacciones distribuidas. Para más información, consulte Transacciones y simultaneidad.
El proveedor de datos de .NET Framework para Oracle requiere que el software de cliente de Oracle (versión 8.1.7 o posterior) esté instalado en el sistema antes de conectarse a un origen de datos de Oracle.
Las clases del proveedor de datos de .NET Framework para Oracle se encuentran en el espacio de nombres System.Data.OracleClient y están incluidas en el ensamblado System.Data.OracleClient.dll
. Al compilar una aplicación que utiliza el proveedor de datos, debe hacer referencia tanto a System.Data.dll
como a System.Data.OracleClient.dll
.
En el siguiente ejemplo de código se muestra cómo puede incluir el espacio de nombres System.Data.OracleClient
en sus aplicaciones.
Imports System.Data
Imports System.Data.OracleClient
using System.Data;
using System.Data.OracleClient;
Elegir un proveedor de datos de .NET Framework
En función del diseño y del origen de datos de su aplicación, su elección del proveedor de datos de .NET Framework puede mejorar el rendimiento, la funcionalidad y la integridad de su aplicación. En la siguiente tabla se describen las ventajas y las limitaciones de cada proveedor de datos de .NET Framework.
Proveedor | Notas |
---|---|
Proveedor de datos .NET Framework para SQL Server | Recomendado para aplicaciones de nivel intermedio que usan Microsoft SQL Server. Recomendado para aplicaciones de nivel único que usan el Motor de base de datos de Microsoft (MSDE) o SQL Server. Se recomienda frente al uso del proveedor de OLE DB para SQL Server (SQLOLEDB) con el proveedor de datos de .NET Framework para OLE DB. |
Proveedor de datos .NET Framework para OLE DB | Para SQL Server, se recomienda el proveedor de datos de .NET Framework para SQL Server en lugar de este proveedor. Recomendado para aplicaciones de nivel único que usan bases de datos de Microsoft Access. No se recomienda el uso de bases de datos de Access para una aplicación de nivel medio. |
Proveedor de datos .NET Framework para ODBC | Recomendado para aplicaciones de un único nivel y de nivel medio que utilizan orígenes de datos de ODBC. |
Proveedor de datos .NET Framework para Oracle | Recomendado para aplicaciones de un único nivel y de nivel medio que utilizan orígenes de datos de Oracle. |
Proveedor para EntityClient
El proveedor EntityClient se usa para obtener acceso a datos basándose en un Entity Data Model (EDM). A diferencia de otros proveedores de datos .NET Framework, no interactúa directamente con ningún origen de datos. En su lugar, usa Entity SQL para comunicarse con el proveedor de datos subyacente. Para obtener más información, consulte Proveedor de EntityClient para Entity Framework.