.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 Data Provider 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 ODBC-lager (Open Database Connectivity). 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.
.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älj 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 Data Provider 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.