Proveedores de datos .NET Framework.NET Framework Data Providers

Un proveedor de datos de .NET Framework se utiliza para conectarse a una base de datos, ejecutar comandos y recuperar resultados.A .NET Framework data provider is used for connecting to a database, executing commands, and retrieving results. 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.Those results are either processed directly, placed in a DataSet in order to be exposed to the user as needed, combined with data from multiple sources, or remoted between tiers. .NET Framework proveedores de datos son ligeros, creando una capa mínima entre el origen de datos y el código, lo que aumenta el rendimiento sin sacrificar la funcionalidad..NET Framework data providers are lightweight, creating a minimal layer between the data source and code, increasing performance without sacrificing functionality.

En la tabla siguiente se enumeran los proveedores de datos que se incluyen en el .NET Framework.The following table lists the data providers that are included in the .NET Framework.

proveedor de datos de .NET Framework (.NET Framework data provider).NET Framework data provider DESCRIPCIÓNDescription
Proveedor de datos .NET Framework para SQL Server.NET Framework Data Provider for SQL Server Proporciona acceso de datos para Microsoft SQL Server.Provides data access for Microsoft SQL Server. Utiliza el espacio de nombres System.Data.SqlClient .Uses the System.Data.SqlClient namespace.
Proveedor de datos .NET Framework para OLE DB.NET Framework Data Provider for OLE DB Para orígenes de datos que se exponen mediante OLE DB.For data sources exposed by using OLE DB. Utiliza el espacio de nombres System.Data.OleDb .Uses the System.Data.OleDb namespace.
Proveedor de datos .NET Framework para ODBC.NET Framework Data Provider for ODBC Para orígenes de datos que se exponen mediante ODBC.For data sources exposed by using ODBC. Utiliza el espacio de nombres System.Data.Odbc .Uses the System.Data.Odbc namespace.
Proveedor de datos .NET Framework para Oracle.NET Framework Data Provider for Oracle Para orígenes de datos de Oracle.For Oracle data sources. El proveedor de datos de .NET Framework para Oracle es compatible con la versión 8.1.7 y posteriores del software System.Data.OracleClient cliente de Oracle y utiliza el espacio de nombres.The .NET Framework Data Provider for Oracle supports Oracle client software version 8.1.7 and later, and uses the System.Data.OracleClient namespace.
Proveedor para EntityClientEntityClient Provider Proporciona acceso a datos para las aplicaciones de Entity Data Model (EDM).Provides data access for Entity Data Model (EDM) applications. Utiliza el espacio de nombres System.Data.EntityClient .Uses the System.Data.EntityClient namespace.
.NET Framework proveedor de datos para SQL Server Compact 4,0..NET Framework Data Provider for SQL Server Compact 4.0. Proporciona acceso a datos para Microsoft SQL Server Compact 4,0.Provides data access for Microsoft SQL Server Compact 4.0. Usa el espacio de nombres System.Data.SqlServerCe .Uses the System.Data.SqlServerCe namespace.

Objetos principales de los proveedores de datos .NET FrameworkCore Objects of .NET Framework Data Providers

En la tabla siguiente se describen los cuatro objetos principales que componen un .NET Framework proveedor de datos.The following table outlines the four core objects that make up a .NET Framework data provider.

ObjectObject DESCRIPCIÓNDescription
Connection Establece una conexión a un origen de datos determinado.Establishes a connection to a specific data source. La clase base para todos los objetos Connection es DbConnection .The base class for all Connection objects is the DbConnection class.
Command Ejecuta un comando en un origen de datos.Executes a command against a data source. Expone Parameters y puede ejecutarse en el ámbito de un objeto Transaction desde Connection.Exposes Parameters and can execute in the scope of a Transaction from a Connection. La clase base para todos los objetos Command es DbCommand .The base class for all Command objects is the DbCommand class.
DataReader Lee un flujo de datos de solo avance y solo lectura desde un origen de datos.Reads a forward-only, read-only stream of data from a data source. La clase base para todos los objetos DataReader es DbDataReader .The base class for all DataReader objects is the DbDataReader class.
DataAdapter Llena un DataSet y realiza las actualizaciones necesarias en el origen de datos.Populates a DataSet and resolves updates with the data source. La clase base para todos los objetos DataAdapter es DbDataAdapter .The base class for all DataAdapter objects is the DbDataAdapter class.

Además de las clases principales enumeradas en la tabla anterior de este documento, un proveedor de datos de .NET Framework también contiene las clases que se muestran en la tabla siguiente.In addition to the core classes listed in the table earlier in this document, a .NET Framework data provider also contains the classes listed in the following table.

ObjectObject DESCRIPCIÓNDescription
Transaction Incluye comandos en las transacciones que se realizan en el origen de datos.Enlists commands in transactions at the data source. La clase base para todos los objetos Transaction es DbTransaction .The base class for all Transaction objects is the DbTransaction class. ADO.NET es también compatible con las transacciones que usan clases en el espacio de nombres System.Transactions .ADO.NET also provides support for transactions using classes in the System.Transactions namespace.
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.A helper object that automatically generates command properties of a DataAdapter or derives parameter information from a stored procedure and populates the Parameters collection of a Command object. La clase base para todos los objetos CommandBuilder es DbCommandBuilder .The base class for all CommandBuilder objects is the DbCommandBuilder class.
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.A helper object that provides a simple way to create and manage the contents of connection strings used by the Connection objects. La clase base para todos los objetos ConnectionStringBuilder es DbConnectionStringBuilder .The base class for all ConnectionStringBuilder objects is the DbConnectionStringBuilder class.
Parameter Define los parámetros de entrada, salida y valores devueltos para los comandos y procedimientos almacenados.Defines input, output, and return value parameters for commands and stored procedures. La clase base para todos los objetos Parameter es DbParameter .The base class for all Parameter objects is the DbParameter class.
Exception Se devuelve cuando se detecta un error en el origen de datos.Returned when an error is encountered at the data source. En el caso de un error detectado en el cliente, .NET Framework proveedores de datos inician una excepción .NET Framework.For an error encountered at the client, .NET Framework data providers throw a .NET Framework exception. La clase base para todos los objetos Exception es DbException .The base class for all Exception objects is the DbException class.
Error Expone la información relacionada con una advertencia o error devueltos por un origen de datos.Exposes the information from a warning or error returned by a data source.
ClientPermission Se proporciona para los atributos de seguridad de acceso del código del proveedor de datos .NET Framework.Provided for .NET Framework data provider code access security attributes. La clase base para todos los objetos ClientPermission es DBDataPermission .The base class for all ClientPermission objects is the DBDataPermission class.

Proveedor de datos .NET Framework para SQL Server (SqlClient).NET Framework Data Provider for SQL Server (SqlClient)

El proveedor de datos de .NET Framework para SQL Server (SqlClient) usa su propio protocolo para comunicarse con SQL Server.The .NET Framework Data Provider for SQL Server (SqlClient) uses its own protocol to communicate with SQL Server. Es ligero y funciona bien porque está optimizado para tener acceso a una SQL Server directamente sin agregar una capa de conectividad de base de datos (ODBC) OLE DB o abierta.It is lightweight and performs well because it is optimized to access a SQL Server directly without adding an OLE DB or Open Database Connectivity (ODBC) layer. En la siguiente ilustración se compara el proveedor de datos de .NET Framework para SQL Server con el proveedor de datos de .NET Framework para OLE DB.The following illustration contrasts the .NET Framework Data Provider for SQL Server with the .NET Framework Data Provider for OLE DB. El proveedor de datos de .NET Framework para OLE DB se comunica con un origen de datos de OLE DB a través del componente de servicio OLE DB, que proporciona agrupación de conexiones y servicios de transacción, y el proveedor de OLE DB para el origen de datos.The .NET Framework Data Provider for OLE DB communicates to an OLE DB data source through both the OLE DB Service component, which provides connection pooling and transaction services, and the OLE DB provider for the data source.

Nota

El proveedor de datos .NET Framework para ODBC tiene una arquitectura similar a la del proveedor de datos .NET Framework para OLE DB; por ejemplo, llama a un componente de servicio ODBC.The .NET Framework Data Provider for ODBC has a similar architecture to the .NET Framework Data Provider for OLE DB; for example, it calls into an ODBC Service Component.

Proveedores de datosData providers
Comparación del proveedor de datos .NET Framework para SQL Server y el proveedor de datos .NET Framework para OLE DBComparison of the .NET Framework Data Provider for SQL Server and the .NET Framework Data Provider for OLE DB

El proveedor de datos de .NET Framework para las clases de SQL Server System.Data.SqlClient se encuentra en el espacio de nombres.The .NET Framework Data Provider for SQL Server classes are located in the System.Data.SqlClient namespace.

El proveedor de datos de .NET Framework para SQL Server admite transacciones locales y distribuidas.The .NET Framework Data Provider for SQL Server supports both local and distributed transactions. Para las transacciones distribuidas, el proveedor de datos de .NET Framework para SQL Server, de forma predeterminada, se da de alta automáticamente en una transacción y obtiene los detalles System.Transactionsde la transacción de los servicios de componentes de Windows o.For distributed transactions, the .NET Framework Data Provider for SQL Server, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services or System.Transactions. Para obtener más información, consulte transacciones y simultaneidad.For more information, see Transactions and Concurrency.

En el siguiente ejemplo de código se muestra cómo puede incluir el espacio de nombres System.Data.SqlClient en sus aplicaciones.The following code example shows how to include the System.Data.SqlClient namespace in your applications.

Imports System.Data.SqlClient  
using System.Data.SqlClient;  

Proveedor de datos .NET Framework para OLE DB.NET Framework Data Provider for OLE DB

El proveedor de datos de .NET Framework para OLE DB (OleDb) utiliza OLE DB nativa a través de la interoperabilidad COM para habilitar el acceso a los datos.The .NET Framework Data Provider for OLE DB (OleDb) uses native OLE DB through COM interop to enable data access. El proveedor de datos de .NET Framework para OLE DB admite transacciones locales y distribuidas.The .NET Framework Data Provider for OLE DB supports both local and distributed transactions. Para las transacciones distribuidas, el proveedor de datos de .NET Framework para OLE DB, de forma predeterminada, se da de alta automáticamente en una transacción y obtiene los detalles de la transacción de los servicios de componentes de Windows.For distributed transactions, the .NET Framework Data Provider for OLE DB, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services. Para obtener más información, consulte transacciones y simultaneidad.For more information, see Transactions and Concurrency.

En la tabla siguiente se muestran los proveedores probados con ADO.NET.The following table shows the providers that have been tested with ADO.NET.

ControladorDriver ProveedorProvider
SQLOLEDBSQLOLEDB Proveedor de OLE DB de Microsoft para SQL ServerMicrosoft OLE DB provider for SQL Server
MSDAORAMSDAORA Proveedor Microsoft OLE DB para OracleMicrosoft OLE DB provider for Oracle
Microsoft.Jet.OLEDB.4.0Microsoft.Jet.OLEDB.4.0 Proveedor OLE DB para Microsoft JetOLE DB provider for Microsoft Jet

Nota

No se recomienda utilizar una base de datos de Access (jet) como origen de datos para las aplicaciones multiproceso, como las aplicaciones ASP.NET.Using an Access (Jet) database as a data source for multithreaded applications, such as ASP.NET applications, is not recommended. Si debe usar jet como origen de datos para una aplicación de ASP.NET, tenga en cuentan que las aplicaciones de ASP.NET que se conectan a una base de datos de Access pueden encontrar problemas de conexión.If you must use Jet as a data source for an ASP.NET application, realize that ASP.NET applications connecting to an Access database can encounter connection problems.

El proveedor de datos de .NET Framework para OLE DB no es compatible con las interfaces OLE DB versión 2,5.The .NET Framework Data Provider for OLE DB does not support OLE DB version 2.5 interfaces. OLE DB proveedores que requieran compatibilidad con las interfaces de OLE DB 2,5 no funcionarán correctamente con el proveedor de datos de .NET Framework para OLE DB.OLE DB Providers that require support for OLE DB 2.5 interfaces will not function correctly with the .NET Framework Data Provider for 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.This includes the Microsoft OLE DB provider for Exchange and the Microsoft OLE DB provider for Internet Publishing.

El proveedor de datos de .NET Framework para OLE DB no funciona con el proveedor de OLE DB para ODBC (MSDASQL).The .NET Framework Data Provider for OLE DB does not work with the OLE DB provider for ODBC (MSDASQL). Para obtener acceso a un origen de datos ODBC mediante ADO.NET, use el proveedor de datos de .NET Framework para ODBC.To access an ODBC data source using ADO.NET, use the .NET Framework Data Provider for ODBC.

.NET Framework proveedor de datos para OLE DB clases se encuentran en System.Data.OleDb el espacio de nombres..NET Framework Data Provider for OLE DB classes are located in the System.Data.OleDb namespace. En el siguiente ejemplo de código se muestra cómo puede incluir el espacio de nombres System.Data.OleDb en sus aplicaciones.The following code example shows how to include the System.Data.OleDb namespace in your applications.

Imports System.Data.OleDb  
using System.Data.OleDb;  

Proveedor de datos .NET Framework para ODBC.NET Framework Data Provider for ODBC

El proveedor de datos de .NET Framework para ODBC (ODBC) utiliza el administrador de controladores ODBC (DM) nativo para habilitar el acceso a los datos.The .NET Framework Data Provider for ODBC (Odbc) uses the native ODBC Driver Manager (DM) to enable data access. El proveedor de datos de ODBC admite tanto transacciones locales como transacciones distribuidas.The ODBC data provider supports both local and distributed transactions. 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.For distributed transactions, the ODBC data provider, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services. Para obtener más información, consulte transacciones y simultaneidad.For more information, see Transactions and Concurrency.

En la tabla siguiente se muestran los controladores ODBC probados con ADO.NET.The following table shows the ODBC drivers tested with ADO.NET.

ControladorDriver
SQL ServerSQL Server
Microsoft ODBC para OracleMicrosoft ODBC for Oracle
Microsoft Access Driver (*.mdb)Microsoft Access Driver (*.mdb)

.NET Framework proveedor de datos para las clases ODBC se encuentran System.Data.Odbc en el espacio de nombres..NET Framework Data Provider for ODBC classes are located in the System.Data.Odbc namespace.

En el siguiente ejemplo de código se muestra cómo puede incluir el espacio de nombres System.Data.Odbc en sus aplicaciones.The following code example shows how to include the System.Data.Odbc namespace in your applications.

Imports System.Data.Odbc  
using System.Data.Odbc;  

Nota

El proveedor de datos de .NET Framework para ODBC requiere MDAC 2,6 o una versión posterior, y se recomienda MDAC 2,8 SP1.The .NET Framework Data Provider for ODBC requires MDAC 2.6 or a later version, and MDAC 2.8 SP1 is recommended. Puede descargar MDAC 2.8 SP1 del Centro para programadores de acceso a datos y almacenamiento.You can download MDAC 2.8 SP1 from the Data Access and Storage Developer Center.

Proveedor de datos .NET Framework para Oracle.NET Framework Data Provider for Oracle

El proveedor de datos de .NET Framework para Oracle (OracleClient) permite el acceso a los datos de los orígenes de datos de Oracle a través del software de conectividad de cliente de Oracle.The .NET Framework Data Provider for Oracle (OracleClient) enables data access to Oracle data sources through Oracle client connectivity software. El proveedor de datos es compatible con la versión 8.1.7 o posterior del software de cliente de Oracle.The data provider supports Oracle client software version 8.1.7 or a later version. El proveedor de datos admite tanto transacciones locales como transacciones distribuidas.The data provider supports both local and distributed transactions. Para obtener más información, consulte transacciones y simultaneidad.For more information, see Transactions and Concurrency.

El proveedor de datos de .NET Framework para Oracle requiere el software de cliente de Oracle (versión 8.1.7 o una versión posterior) en el sistema para poder conectarse a un origen de datos de Oracle.The .NET Framework Data Provider for Oracle requires Oracle client software (version 8.1.7 or a later version) on the system before you can connect to an Oracle data source.

.NET Framework proveedor de datos para las clases de Oracle se System.Data.OracleClient encuentran en el espacio de nombres System.Data.OracleClient.dll y se incluyen en el ensamblado..NET Framework Data Provider for Oracle classes are located in the System.Data.OracleClient namespace and are contained in the System.Data.OracleClient.dll assembly. 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 .You must reference both the System.Data.dll and the System.Data.OracleClient.dll when you compile an application that uses the data provider.

En el siguiente ejemplo de código se muestra cómo puede incluir el espacio de nombres System.Data.OracleClient en sus aplicaciones.The following code example shows how to include the System.Data.OracleClient namespace in your applications.

Imports System.Data  
Imports System.Data.OracleClient  
using System.Data;  
using System.Data.OracleClient;  

Elegir un proveedor de datos .NET FrameworkChoosing a .NET Framework Data Provider

En función del diseño y del origen de datos de la aplicación, la elección de .NET Framework proveedor de datos puede mejorar el rendimiento, la capacidad y la integridad de la aplicación.Depending on the design and data source for your application, your choice of .NET Framework data provider can improve the performance, capability, and integrity of your application. En la tabla siguiente se describen las ventajas y las limitaciones de cada proveedor de datos de .NET Framework.The following table discusses the advantages and limitations of each .NET Framework data provider.

ProveedorProvider NotasNotes
Proveedor de datos .NET Framework para SQL Server.NET Framework Data Provider for SQL Server Se recomienda para las aplicaciones de nivel intermedio que usan Microsoft SQL Server.Recommended for middle-tier applications that use Microsoft SQL Server.

Se recomienda para las aplicaciones de un solo nivel que usan Microsoft Motor de base de datos (MSDE) o SQL Server.Recommended for single-tier applications that use Microsoft Database Engine (MSDE) or SQL Server.

Se recomienda usar el proveedor de OLE DB para SQL Server (SQLOLEDB) con el proveedor de datos de .NET Framework para OLE DB.Recommended over use of the OLE DB provider for SQL Server (SQLOLEDB) with the .NET Framework Data Provider for OLE DB.
Proveedor de datos .NET Framework para OLE DB.NET Framework Data Provider for OLE DB Por SQL Server, se recomienda el proveedor de datos .NET Framework para SQL Server en lugar de este proveedor.For SQL Server, the .NET Framework Data Provider for SQL Server is recommended instead of this provider.

Recomendado para aplicaciones de nivel único que usan bases de datos de Microsoft Access.Recommended for single-tier applications that use Microsoft Access databases. No se recomienda el uso de bases de datos de Access para una aplicación de nivel medio.Use of an Access database for a middle-tier application is not recommended.
Proveedor de datos .NET Framework para ODBC.NET Framework Data Provider for ODBC Recomendado para aplicaciones de un único nivel y de nivel medio que utilizan orígenes de datos de ODBC.Recommended for middle and single-tier applications that use ODBC data sources.
Proveedor de datos .NET Framework para Oracle.NET Framework Data Provider for Oracle Recomendado para aplicaciones de un único nivel y de nivel medio que utilizan orígenes de datos de Oracle.Recommended for middle and single-tier applications that use Oracle data sources.

Proveedor para EntityClientEntityClient Provider

El proveedor EntityClient se usa para obtener acceso a datos basándose en un Entity Data Model (EDM).The EntityClient provider is used for accessing data based on an Entity Data Model (EDM). A diferencia de otros proveedores de datos .NET Framework, no interactúa directamente con ningún origen de datos.Unlike the other .NET Framework data providers, it does not interact directly with a data source. En su lugar, usa Entity SQL para comunicarse con el proveedor de datos subyacente.Instead, it uses Entity SQL to communicate with the underlying data provider. Para obtener más información, consulte proveedor de EntityClient para el Entity Framework.For more information, see EntityClient Provider for the Entity Framework.

Vea tambiénSee also