Dela via


.NET Framework-dataprovidrar

En .NET Framework-dataprovider används för att ansluta till en databas, köra kommandon och hämta resultat. Dessa resultat bearbetas antingen direkt, placeras i en DataSet för att exponeras för användaren efter behov, kombinerat med data från flera källor eller fjärranslutna mellan nivåer. .NET Framework-dataprovidrar är lätta och skapar ett minimalt lager mellan datakällan och koden, vilket ökar prestandan utan att offra funktioner.

I följande tabell visas de dataprovidrar som ingår i .NET Framework.

.NET Framework-dataprovider beskrivning
.NET Framework-dataprovider för SQL Server Ger dataåtkomst för Microsoft SQL Server. System.Data.SqlClient Använder namnområdet.
.NET Framework-dataprovider för OLE DB För datakällor som exponeras med hjälp av OLE DB. System.Data.OleDb Använder namnområdet.
.NET Framework-dataprovider för ODBC För datakällor som exponeras med hjälp av ODBC. System.Data.Odbc Använder namnområdet.
.NET Framework-dataprovider för Oracle För Oracle-datakällor. .NET Framework-dataprovidern för Oracle stöder Oracle-klientprogramvara version 8.1.7 och senare och använder System.Data.OracleClient namnområdet.
EntityClient-provider Ger dataåtkomst för EDM-program (Entity Data Model). System.Data.EntityClient Använder namnområdet.
.NET Framework Data Provider för SQL Server Compact 4.0. Ger dataåtkomst för Microsoft SQL Server Compact 4.0. Använder namnområdet System.Data.SqlServerCe.

Kärnobjekt för .NET Framework-dataproviders

I följande tabell beskrivs de fyra kärnobjekt som utgör en .NET Framework-dataprovider.

Objekt beskrivning
Connection Upprättar en anslutning till en specifik datakälla. Basklassen för alla Connection objekt är DbConnection klassen .
Command Kör ett kommando mot en datakälla. Exponerar Parameters och kan köras i omfånget för en Transaction från en Connection. Basklassen för alla Command objekt är DbCommand klassen .
DataReader Läser en framåtriktad, skrivskyddad dataström från en datakälla. Basklassen för alla DataReader objekt är DbDataReader klassen .
DataAdapter Fyller i en DataSet och löser uppdateringar med datakällan. Basklassen för alla DataAdapter objekt är DbDataAdapter klassen .

Förutom de kärnklasser som anges i tabellen tidigare i det här dokumentet innehåller en .NET Framework-dataprovider även de klasser som anges i följande tabell.

Objekt beskrivning
Transaction Anger kommandon i transaktioner i datakällan. Basklassen för alla Transaction objekt är DbTransaction klassen . ADO.NET ger också stöd för transaktioner som använder klasser i System.Transactions namnområdet.
CommandBuilder Ett hjälpobjekt som automatiskt genererar kommandoegenskaper för en DataAdapter eller härleder parameterinformation från en lagrad procedur och fyller i Parameters samlingen av ett Command objekt. Basklassen för alla CommandBuilder objekt är DbCommandBuilder klassen .
ConnectionStringBuilder Ett hjälpobjekt som ger ett enkelt sätt att skapa och hantera innehållet i anslutningssträng som används av objektenConnection. Basklassen för alla ConnectionStringBuilder objekt är DbConnectionStringBuilder klassen .
Parameter Definierar parametrar för indata, utdata och returvärden för kommandon och lagrade procedurer. Basklassen för alla Parameter objekt är DbParameter klassen .
Exception Returneras när ett fel påträffas i datakällan. För ett fel som påträffas på klienten utlöser .NET Framework-dataprovidrar ett .NET Framework-undantag. Basklassen för alla Exception objekt är DbException klassen .
Error Exponerar informationen från en varning eller ett fel som returneras av en datakälla.
ClientPermission Tillhandahålls för .NET Framework-dataproviderns kodåtkomstsäkerhetsattribut. Basklassen för alla ClientPermission objekt är DBDataPermission klassen .

.NET Framework Data Provider för SQL Server (SqlClient)

.NET Framework-dataprovidern för SQL Server (SqlClient) använder sitt eget protokoll för att kommunicera med SQL Server. Den är lätt och fungerar bra eftersom den är optimerad för att komma åt en SQL Server direkt utan att lägga till ett OLE DB- eller Open Database Anslut ivity-lager (ODBC). Följande bild kontrasterar .NET Framework Data Provider för SQL Server med .NET Framework Data Provider för OLE DB. .NET Framework-dataprovidern för OLE DB kommunicerar med en OLE DB-datakälla via både OLE DB-tjänstkomponenten, som tillhandahåller anslutningspooler och transaktionstjänster, och OLE DB-providern för datakällan.

Kommentar

.NET Framework-dataprovidern för ODBC har en liknande arkitektur som .NET Framework-dataprovidern för OLE DB. Till exempel anropas den till en ODBC-tjänstkomponent.

Data providers
Jämförelse av .NET Framework-dataprovidern för SQL Server och .NET Framework-dataprovidern för OLE DB

.NET Framework-dataprovidern för SQL Server-klasser finns i System.Data.SqlClient namnområdet.

.NET Framework-dataprovidern för SQL Server stöder både lokala och distribuerade transaktioner. För distribuerade transaktioner registrerar .NET Framework-dataprovidern för SQL Server som standard automatiskt i en transaktion och hämtar transaktionsinformation från Windows Component Services eller System.Transactions. Mer information finns i Transaktioner och samtidighet.

I följande kodexempel visas hur du inkluderar System.Data.SqlClient namnområdet i dina program.

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

.NET Framework-dataprovider för OLE DB

.NET Framework-dataprovidern för OLE DB (OleDb) använder inbyggd OLE DB via COM-interop för att aktivera dataåtkomst. .NET Framework-dataprovidern för OLE DB stöder både lokala och distribuerade transaktioner. För distribuerade transaktioner registrerar .NET Framework-dataprovidern för OLE DB som standard automatiskt i en transaktion och hämtar transaktionsinformation från Windows Component Services. Mer information finns i Transaktioner och samtidighet.

I följande tabell visas de providrar som har testats med ADO.NET.

Drivrutinen Provider
SQLOLEDB Microsoft OLE DB-provider för SQL Server
MSDAORA Microsoft OLE DB-provider för Oracle
Microsoft.Jet.OLEDB.4.0 OLE DB-provider för Microsoft Jet

Kommentar

Användning av en Åtkomstdatabas (Jet) som datakälla för flertrådade program, till exempel ASP.NET program, rekommenderas inte. Om du måste använda Jet som datakälla för ett ASP.NET program bör du tänka på att ASP.NET program som ansluter till en Access-databas kan stöta på anslutningsproblem.

.NET Framework-dataprovidern för OLE DB stöder inte OLE DB version 2.5-gränssnitt. OLE DB-leverantörer som kräver stöd för OLE DB 2.5-gränssnitt fungerar inte korrekt med .NET Framework Data Provider för OLE DB. Detta inkluderar Microsoft OLE DB-providern för Exchange och Microsoft OLE DB-providern för Internet Publishing.

.NET Framework-dataprovidern för OLE DB fungerar inte med OLE DB-providern för ODBC (MSDASQL). Om du vill komma åt en ODBC-datakälla med hjälp av ADO.NET använder du .NET Framework-dataprovidern för ODBC.

.NET Framework Data Provider för OLE DB-klasser finns i System.Data.OleDb namnområdet. I följande kodexempel visas hur du inkluderar System.Data.OleDb namnområdet i dina program.

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

.NET Framework-dataprovider för ODBC

.NET Framework-dataprovidern för ODBC (Odbc) använder den interna ODBC Driver Manager (DM) för att aktivera dataåtkomst. ODBC-dataprovidern stöder både lokala och distribuerade transaktioner. För distribuerade transaktioner registrerar ODBC-dataleverantören som standard automatiskt en transaktion och hämtar transaktionsinformation från Windows Component Services. Mer information finns i Transaktioner och samtidighet.

Följande tabell visar ODBC-drivrutinerna som testats med ADO.NET.

Drivrutinen
SQL Server
Microsoft ODBC för Oracle
Microsoft Access-drivrutin (*.mdb)

.NET Framework Data Provider för ODBC-klasser finns i System.Data.Odbc namnområdet.

I följande kodexempel visas hur du inkluderar System.Data.Odbc namnområdet i dina program.

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

Kommentar

.NET Framework-dataprovidern för ODBC kräver MDAC 2.6 eller en senare version och MDAC 2.8 SP1 rekommenderas.

.NET Framework-dataprovider för Oracle

.NET Framework Data Provider for Oracle (OracleClient) ger dataåtkomst till Oracle-datakällor via Oracle-klientanslutningsprogram. Dataprovidern stöder Oracle-klientprogramvara version 8.1.7 eller en senare version. Dataprovidern stöder både lokala och distribuerade transaktioner. Mer information finns i Transaktioner och samtidighet.

.NET Framework-dataprovidern för Oracle kräver Oracle-klientprogramvara (version 8.1.7 eller en senare version) i systemet innan du kan ansluta till en Oracle-datakälla.

.NET Framework Data Provider för Oracle-klasser finns i System.Data.OracleClient namnområdet och finns i System.Data.OracleClient.dll sammansättningen. Du måste referera till både System.Data.dll och System.Data.OracleClient.dll när du kompilerar ett program som använder dataprovidern.

I följande kodexempel visas hur du inkluderar System.Data.OracleClient namnområdet i dina program.

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

Välja en .NET Framework-dataprovider

Beroende på design och datakälla för ditt program kan ditt val av .NET Framework-dataprovider förbättra programmets prestanda, kapacitet och integritet. I följande tabell beskrivs fördelarna och begränsningarna för varje .NET Framework-dataprovider.

Provider Kommentar
.NET Framework-dataprovider för SQL Server Rekommenderas för mellannivåprogram som använder Microsoft SQL Server.

Rekommenderas för program på en nivå som använder Microsoft Database Engine (MSDE) eller SQL Server.

Rekommenderas för användning av OLE DB-providern för SQL Server (SQLOLEDB) med .NET Framework-dataprovidern för OLE DB.
.NET Framework-dataprovider för OLE DB För SQL Server rekommenderas .NET Framework-dataprovidern för SQL Server i stället för den här providern.

Rekommenderas för program på en nivå som använder Microsoft Access-databaser. Användning av en Access-databas för ett mellannivåprogram rekommenderas inte.
.NET Framework-dataprovider för ODBC Rekommenderas för mellan- och ennivåprogram som använder ODBC-datakällor.
.NET Framework-dataprovider för Oracle Rekommenderas för mellan- och ennivåprogram som använder Oracle-datakällor.

EntityClient-provider

EntityClient-providern används för att komma åt data baserat på en entitetsdatamodell (EDM). Till skillnad från de andra .NET Framework-dataprovidrar interagerar de inte direkt med en datakälla. I stället använder den Entity SQL för att kommunicera med den underliggande dataprovidern. Mer information finns i EntityClient-providern för Entity Framework.

Se även