.Proveedores de datos de .NET Framework (ADO.NET)

Actualización: November 2007

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 un nivel mínimo entre el origen de datos y el código, con lo que aumenta el rendimiento sin sacrificar funcionalidad.

En la tabla siguiente se enumeran los proveedores de datos que se incluyen en .NET Framework.

(.NET Framework) Proveedor de datos

Descripción

(.NET Framework) Proveedor de datos para SQL Server

Proporciona acceso a datos para Microsoft SQL Server versión 7.0 o posterior. Utiliza el espacio de nombres System.Data.SqlClient.

(.NET Framework) Proveedor de datos para OLE DB

Para orígenes de datos que se exponen mediante OLE DB. Utiliza el espacio de nombres System.Data.OleDb.

(.NET Framework) Proveedor de datos para ODBC

Para orígenes de datos que se exponen mediante ODBC. Utiliza el espacio de nombres System.Data.Odbc.

(.NET Framework) Proveedor de datos 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 EntityClient

Proporciona acceso a datos para las aplicaciones de Entity Data Model (EDM). Utiliza el espacio de nombres System.Data.EntityClient.

Objetos principales de los proveedores de datos de .NET Framework

En la tabla siguiente se describen los cuatro objetos centrales que constituyen un proveedor de datos de .NET Framework.

Objeto

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 una secuencia de datos de sólo avance y sólo 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.

Objeto

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 auxiliar 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 auxiliar 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. En el caso de que el error se detecte en el cliente, los proveedores de datos de .NET Framework generan 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 de .NET Framework para servidor 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 tener acceso a SQL Server directamente, sin agregar una capa OLE DB u ODBC. En la siguiente ilustración se compara el proveedor de datos de .NET Framework para SQL Server y 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 OLE DB tanto a través del 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.

Comparación del proveedor de datos de dnprdnshort para ssNoVersionr y el proveedor de datos de dnprdnshort para OLE DB

Para utilizar el proveedor de datos de .NET Framework para SQL Server, debe tener acceso a SQL Server 7.0 o posterior. Las clases del proveedor de datos de .NET Framework para SQL Server se encuentran en el espacio de nombres System.Data.SqlClient. Para versiones anteriores de SQL Server, utilice el proveedor de datos de .NET Framework para OLE DB con el proveedor de datos OLE DB de SQL Server System.Data.OleDb.

El proveedor de datos de .NET Framework para SQL Server admite tanto transacciones locales como transacciones distribuidas. En el caso de las transacciones distribuidas, el proveedor de datos de .NET Framework para SQL Server se inscribe automáticamente y de forma predeterminada en una transacción y obtiene los detalles de la misma a través de los servicios de componentes de Windows o de System.Transactions. Para obtener más información, vea Transacciones y simultaneidad (ADO.NET).

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 de .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 transacciones distribuidas. En el caso de las transacciones distribuidas, el proveedor de datos de .NET Framework para OLE DB se inscribe automáticamente y de forma predeterminada en una transacción y obtiene los detalles de la misma a través de los servicios de componentes de Windows 2000. Para obtener más información, vea Transacciones y simultaneidad (ADO.NET).

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 de aplicaciones multiproceso, como las aplicaciones ASP.NET. Si debe utilizar 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. Para obtener ayuda a la hora de solucionar los problemas de conexión que puedan presentarse al utilizar ASP.NET y una base de datos Access (Jet), vea el artículo Q316675, "PRB: No se puede conectar a base de datos de Access desde ASP.NET" en Microsoft Knowledge Base.

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 OLE DB que requieren compatibilidad con interfaces de la versión 2.5 de OLE DB 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 OLE DB para ODBC (MSDASQL). Para tener acceso a un origen de datos ODBC mediante ADO.NET, utilice 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;
Nota:

El proveedor de datos de .NET Framework para OLE DB necesita MDAC 2.6 o una versión superior y se recomienda MDAC 2.8 Service Pack 1 (SP1). Puede descargar MDAC 2.8 SP1 del Centro para programadores de acceso a datos y almacenamiento.

.Proveedor de datos de .NET Framework para ODBC

El proveedor de datos de .NET Framework para ODBC (Odbc) utiliza el Administrador de controladores 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 de ODBC se inscribe automáticamente y de forma predeterminada en una transacción y obtiene los detalles de la misma a través de los servicios de componentes de Windows 2000. Para obtener más información, vea Transacciones y simultaneidad (ADO.NET).

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 encuentran 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 posterior, y se recomienda MDAC 2.8 SP1. Puede descargar MDAC 2.8 SP1 del Centro para programadores de acceso a datos y almacenamiento.

.Proveedor de datos de .NET Framework para Oracle

El proveedor de datos de .NET Framework para Oracle (OracleClient) habilita 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 obtener más información, vea Transacciones y simultaneidad (ADO.NET).

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

(.NET Framework) Proveedor de datos para SQL Server

Recomendado para aplicaciones de nivel medio que utilizan Microsoft SQL Server 7.0 o posterior.

Recomendado para aplicaciones de un único nivel que utilizan Microsoft Database Engine (MSDE) o SQL Server 7.0 o una versión posterior.

Recomendado en lugar de utilizar el proveedor OLE DB para SQL Server (SQLOLEDB) con el proveedor de datos de .NET Framework para OLE DB.

Para SQL Server 6.5 y versiones anteriores, debe utilizar el proveedor OLE DB para SQL Server con el proveedor de datos de .NET Framework para OLE DB.

(.NET Framework) Proveedor de datos para OLE DB

Recomendado para aplicaciones de nivel medio que utilizan SQL Server 6.5 o anterior.

Para SQL Server 7.0 o versiones posteriores, se recomienda el proveedor de datos de .NET Framework para SQL Server.

También se recomienda para aplicaciones de un único nivel que utilizan bases de datos de Microsoft Access. No se recomienda el uso de bases de datos de Access para una aplicación de nivel medio.

(.NET Framework) Proveedor de datos para ODBC

Recomendado para aplicaciones de un único nivel y de nivel medio que utilizan orígenes de datos de ODBC.

(.NET Framework) Proveedor de datos para Oracle

Recomendado para aplicaciones de un único nivel y de nivel medio que utilizan orígenes de datos de Oracle.

Proveedor 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 de .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, vea EntityClient and Entity SQL.

Vea también

Otros recursos

Información general sobre ADO.NET

Recuperación y modificación de datos en ADO.NET