Share via


Provedores de dados do .NET Framework

Um provedor de dados do .NET Framework é usado para se conectar a um banco de dados, executar comandos e recuperar resultados. Esses resultados são processados diretamente, colocados em um DataSet para serem expostos ao usuário conforme necessário, combinados com dados de várias fontes ou remotos entre camadas. Os provedores de dados do .NET Framework são leves, criando uma camada mínima entre a fonte de dados e o código, aumentando o desempenho sem sacrificar a funcionalidade.

A tabela a seguir lista os provedores de dados incluídos no .NET Framework.

Provedor de dados do .NET Framework Description
Provedor de dados do .NET Framework para SQL Server Fornece acesso a dados para o Microsoft SQL Server. Usa o System.Data.SqlClient namespace.
Provedor de dados do .NET Framework para OLE DB Para fontes de dados expostas usando OLE DB. Usa o System.Data.OleDb namespace.
Provedor de dados do .NET Framework para ODBC Para fontes de dados expostas usando ODBC. Usa o System.Data.Odbc namespace.
Provedor de dados do .NET Framework para Oracle Para fontes de dados Oracle. O Provedor de Dados do .NET Framework para Oracle oferece suporte ao software cliente Oracle versão 8.1.7 e posterior e usa o System.Data.OracleClient namespace.
Provedor EntityClient Fornece acesso a dados para aplicativos EDM (Entity Data Model). Usa o System.Data.EntityClient namespace.
Provedor de dados .NET Framework para SQL Server Compact 4.0. Fornece acesso a dados para o Microsoft SQL Server Compact 4.0. Usa o namespace System.Data.SqlServerCe .

Objetos principais de provedores de dados do .NET Framework

A tabela a seguir descreve os quatro objetos principais que compõem um provedor de dados do .NET Framework.

Objeto Description
Connection Estabelece uma conexão com uma fonte de dados específica. A classe base para todos os Connection objetos é a DbConnection classe.
Command Executa um comando em uma fonte de dados. Expõe Parameters e pode executar no âmbito de um Transaction a partir de um Connectionarquivo . A classe base para todos os Command objetos é a DbCommand classe.
DataReader Lê um fluxo de dados somente encaminhamento e somente leitura de uma fonte de dados. A classe base para todos os DataReader objetos é a DbDataReader classe.
DataAdapter Preenche a DataSet e resolve atualizações com a fonte de dados. A classe base para todos os DataAdapter objetos é a DbDataAdapter classe.

Além das classes principais listadas na tabela anterior neste documento, um provedor de dados do .NET Framework também contém as classes listadas na tabela a seguir.

Objeto Description
Transaction Alista comandos em transações na fonte de dados. A classe base para todos os Transaction objetos é a DbTransaction classe. ADO.NET também fornece suporte para transações usando classes no System.Transactions namespace.
CommandBuilder Um objeto auxiliar que gera automaticamente propriedades de comando de um DataAdapter ou deriva informações de parâmetro de um procedimento armazenado e preenche a Parameters coleção de um Command objeto. A classe base para todos os CommandBuilder objetos é a DbCommandBuilder classe.
ConnectionStringBuilder Um objeto auxiliar que fornece uma maneira simples de criar e gerenciar o conteúdo das cadeias de conexão usadas pelos Connection objetos. A classe base para todos os ConnectionStringBuilder objetos é a DbConnectionStringBuilder classe.
Parameter Define parâmetros de valor de entrada, saída e retorno para comandos e procedimentos armazenados. A classe base para todos os Parameter objetos é a DbParameter classe.
Exception Retornado quando um erro é encontrado na fonte de dados. Para um erro encontrado no cliente, os provedores de dados do .NET Framework lançam uma exceção do .NET Framework. A classe base para todos os Exception objetos é a DbException classe.
Error Expõe as informações de um aviso ou erro retornado por uma fonte de dados.
ClientPermission Fornecido para atributos de segurança de acesso ao código do provedor de dados do .NET Framework. A classe base para todos os ClientPermission objetos é a DBDataPermission classe.

Provedor de dados do .NET Framework para SQL Server (SqlClient)

O Provedor de Dados do .NET Framework para SQL Server (SqlClient) usa seu próprio protocolo para se comunicar com o SQL Server. Ele é leve e tem um bom desempenho porque é otimizado para acessar um SQL Server diretamente sem adicionar uma camada OLE DB ou ODBC (Open Database Connectivity). A ilustração a seguir contrasta o Provedor de Dados do .NET Framework para SQL Server com o Provedor de Dados do .NET Framework para OLE DB. O Provedor de Dados do .NET Framework para OLE DB se comunica com uma fonte de dados OLE DB por meio do componente Serviço OLE DB, que fornece pool de conexões e serviços de transação, e do provedor OLE DB para a fonte de dados.

Nota

O Provedor de Dados do .NET Framework para ODBC tem uma arquitetura semelhante ao Provedor de Dados do .NET Framework para OLE DB; por exemplo, ele chama um componente de serviço ODBC.

Data providers
Comparação entre o provedor de dados .NET Framework para SQL Server e o provedor de dados .NET Framework para OLE DB

O Provedor de Dados do .NET Framework para classes do SQL Server está localizado no System.Data.SqlClient namespace.

O Provedor de Dados do .NET Framework para SQL Server oferece suporte a transações locais e distribuídas. Para transações distribuídas, o Provedor de Dados do .NET Framework para SQL Server, por padrão, se alista automaticamente em uma transação e obtém detalhes da transação dos Serviços de Componentes do Windows ou System.Transactionsdo . Para obter mais informações, consulte Transações e simultaneidade.

O exemplo de código a seguir mostra como incluir o System.Data.SqlClient namespace em seus aplicativos.

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

Provedor de dados do .NET Framework para OLE DB

O provedor de dados .NET Framework para OLE DB (OleDb) usa OLE DB nativo por meio de interoperabilidade COM para habilitar o acesso a dados. O Provedor de Dados do .NET Framework para OLE DB oferece suporte a transações locais e distribuídas. Para transações distribuídas, o Provedor de Dados do .NET Framework para OLE DB, por padrão, se alista automaticamente em uma transação e obtém detalhes da transação dos Serviços de Componentes do Windows. Para obter mais informações, consulte Transações e simultaneidade.

A tabela a seguir mostra os provedores que foram testados com ADO.NET.

Controlador Provider
SQLOLEDB Provedor Microsoft OLE DB para SQL Server
MSDAORA Provedor Microsoft OLE DB para Oracle
Microsoft.Jet.OLEDB.4.0 Provedor OLE DB para Microsoft Jet

Nota

O uso de um banco de dados do Access (Jet) como fonte de dados para aplicativos multithreaded, como aplicativos ASP.NET, não é recomendado. Se tiver de utilizar o Jet como fonte de dados para uma aplicação ASP.NET, perceba que ASP.NET aplicações que se ligam a uma base de dados do Access podem encontrar problemas de ligação.

O provedor de dados .NET Framework para OLE DB não oferece suporte a interfaces OLE DB versão 2.5. Provedores OLE DB que exigem suporte para interfaces OLE DB 2.5 não funcionarão corretamente com o provedor de dados .NET Framework para OLE DB. Isso inclui o provedor Microsoft OLE DB para Exchange e o provedor Microsoft OLE DB para publicação na Internet.

O provedor de dados .NET Framework para OLE DB não funciona com o provedor OLE DB para ODBC (MSDASQL). Para acessar uma fonte de dados ODBC usando ADO.NET, use o provedor de dados .NET Framework para ODBC.

O Provedor de Dados do .NET Framework para classes OLE DB está localizado no System.Data.OleDb namespace. O exemplo de código a seguir mostra como incluir o System.Data.OleDb namespace em seus aplicativos.

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

Provedor de dados do .NET Framework para ODBC

O Provedor de Dados do .NET Framework para ODBC (Odbc) usa o Gerenciador de Driver ODBC (DM) nativo para habilitar o acesso a dados. O provedor de dados ODBC suporta transações locais e distribuídas. Para transações distribuídas, o provedor de dados ODBC, por padrão, se alista automaticamente em uma transação e obtém detalhes da transação dos Serviços de Componentes do Windows. Para obter mais informações, consulte Transações e simultaneidade.

A tabela a seguir mostra os drivers ODBC testados com ADO.NET.

Controlador
SQL Server
Microsoft ODBC para Oracle
Driver do Microsoft Access (*.mdb)

O Provedor de Dados do .NET Framework para classes ODBC está localizado no System.Data.Odbc namespace.

O exemplo de código a seguir mostra como incluir o System.Data.Odbc namespace em seus aplicativos.

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

Nota

O provedor de dados do .NET Framework para ODBC requer o MDAC 2.6 ou uma versão posterior, e o MDAC 2.8 SP1 é recomendado.

Provedor de dados do .NET Framework para Oracle

O .NET Framework Data Provider for Oracle (OracleClient) permite o acesso a dados a fontes de dados Oracle por meio do software de conectividade de cliente Oracle. O provedor de dados suporta o software cliente Oracle versão 8.1.7 ou uma versão posterior. O provedor de dados suporta transações locais e distribuídas. Para obter mais informações, consulte Transações e simultaneidade.

O Provedor de Dados do .NET Framework para Oracle requer o software cliente Oracle (versão 8.1.7 ou posterior) no sistema antes que você possa se conectar a uma fonte de dados Oracle.

O Provedor de Dados do .NET Framework para classes Oracle está localizado no System.Data.OracleClient namespace e está contido no System.Data.OracleClient.dll assembly. Você deve fazer referência ao System.Data.dll e ao System.Data.OracleClient.dll quando compila um aplicativo que usa o provedor de dados.

O exemplo de código a seguir mostra como incluir o System.Data.OracleClient namespace em seus aplicativos.

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

Escolhendo um provedor de dados do .NET Framework

Dependendo do design e da fonte de dados para seu aplicativo, sua escolha de provedor de dados .NET Framework pode melhorar o desempenho, a capacidade e a integridade do seu aplicativo. A tabela a seguir discute as vantagens e limitações de cada provedor de dados do .NET Framework.

Provider Notas
Provedor de dados do .NET Framework para SQL Server Recomendado para aplicativos de camada intermediária que usam o Microsoft SQL Server.

Recomendado para aplicativos de camada única que usam o Mecanismo de Banco de Dados da Microsoft (MSDE) ou o SQL Server.

Recomendado o uso excessivo do provedor OLE DB para SQL Server (SQLOLEDB) com o provedor de dados .NET Framework para OLE DB.
Provedor de dados do .NET Framework para OLE DB Para o SQL Server, o Provedor de Dados do .NET Framework para SQL Server é recomendado em vez desse provedor.

Recomendado para aplicativos de camada única que usam bancos de dados do Microsoft Access. O uso de um banco de dados do Access para um aplicativo de camada intermediária não é recomendado.
Provedor de dados do .NET Framework para ODBC Recomendado para aplicativos de camada intermediária e única que usam fontes de dados ODBC.
Provedor de dados do .NET Framework para Oracle Recomendado para aplicativos de camada intermediária e única que usam fontes de dados Oracle.

Provedor EntityClient

O provedor EntityClient é usado para acessar dados com base em um Modelo de Dados de Entidade (EDM). Ao contrário dos outros provedores de dados do .NET Framework, ele não interage diretamente com uma fonte de dados. Em vez disso, ele usa o Entity SQL para se comunicar com o provedor de dados subjacente. Para obter mais informações, consulte EntityClient Provider for the Entity Framework.

Consulte também