Delen via


.NET Framework-gegevensproviders

Een .NET Framework-gegevensprovider wordt gebruikt voor het maken van verbinding met een database, het uitvoeren van opdrachten en het ophalen van resultaten. Deze resultaten worden rechtstreeks verwerkt, geplaatst in een DataSet om de gebruiker indien nodig zichtbaar te maken, gecombineerd met gegevens uit meerdere bronnen of op afstand tussen lagen. .NET Framework-gegevensproviders zijn lichtgewicht, waardoor er een minimale laag ontstaat tussen de gegevensbron en code, waardoor de prestaties toenemen zonder dat dit ten koste gaat van de functionaliteit.

De volgende tabel bevat de gegevensproviders die zijn opgenomen in .NET Framework.

.NET Framework-gegevensprovider Beschrijving
.NET Framework-gegevensprovider voor SQL Server Biedt gegevenstoegang voor Microsoft SQL Server. Maakt gebruik van de System.Data.SqlClient naamruimte.
.NET Framework-gegevensprovider voor OLE DB Voor gegevensbronnen die beschikbaar zijn via OLE DB. Maakt gebruik van de System.Data.OleDb naamruimte.
.NET Framework-gegevensprovider voor ODBC Voor gegevensbronnen die beschikbaar zijn met behulp van ODBC. Maakt gebruik van de System.Data.Odbc naamruimte.
.NET Framework-gegevensprovider voor Oracle Voor Oracle-gegevensbronnen. De .NET Framework-gegevensprovider voor Oracle ondersteunt Oracle-clientsoftware versie 8.1.7 en hoger en maakt gebruik van de System.Data.OracleClient naamruimte.
EntityClient-provider Biedt gegevenstoegang voor EDM-toepassingen (Entity Data Model). Maakt gebruik van de System.Data.EntityClient naamruimte.
.NET Framework-gegevensprovider voor SQL Server Compact 4.0. Biedt gegevenstoegang voor Microsoft SQL Server Compact 4.0. Maakt gebruik van de naamruimte System.Data.SqlServerCe .

Kernobjecten van .NET Framework-gegevensproviders

De volgende tabel bevat een overzicht van de vier kernobjecten waaruit een .NET Framework-gegevensprovider bestaat.

Object Beschrijving
Connection Hiermee wordt een verbinding tot stand gebracht met een specifieke gegevensbron. De basisklasse voor alle Connection objecten is de DbConnection klasse.
Command Hiermee wordt een opdracht uitgevoerd op basis van een gegevensbron. Parameters Maakt beschikbaar en kan worden uitgevoerd in het bereik van een Transaction Connection. De basisklasse voor alle Command objecten is de DbCommand klasse.
DataReader Leest een gegevensstroom met het kenmerk Alleen-lezen die alleen-lezen is uit een gegevensbron. De basisklasse voor alle DataReader objecten is de DbDataReader klasse.
DataAdapter Vult een DataSet en lost updates op met de gegevensbron. De basisklasse voor alle DataAdapter objecten is de DbDataAdapter klasse.

Naast de kernklassen die eerder in dit document in de tabel staan, bevat een .NET Framework-gegevensprovider ook de klassen die in de volgende tabel worden vermeld.

Object Beschrijving
Transaction Hiermee schakelt u opdrachten in transacties in de gegevensbron in. De basisklasse voor alle Transaction objecten is de DbTransaction klasse. ADO.NET biedt ook ondersteuning voor transacties met behulp van klassen in de System.Transactions naamruimte.
CommandBuilder Een helperobject waarmee automatisch opdrachteigenschappen van een DataAdapter of meer parametergegevens worden gegenereerd uit een opgeslagen procedure en de Parameters verzameling van een Command object wordt gevuld. De basisklasse voor alle CommandBuilder objecten is de DbCommandBuilder klasse.
ConnectionStringBuilder Een helperobject dat een eenvoudige manier biedt om de inhoud van verbindingsreeks die door de Connection objecten worden gebruikt, te maken en te beheren. De basisklasse voor alle ConnectionStringBuilder objecten is de DbConnectionStringBuilder klasse.
Parameter Definieert invoer-, uitvoer- en retourwaardeparameters voor opdrachten en opgeslagen procedures. De basisklasse voor alle Parameter objecten is de DbParameter klasse.
Exception Geretourneerd wanneer er een fout optreedt in de gegevensbron. Voor een fout die op de client is opgetreden, genereren .NET Framework-gegevensproviders een .NET Framework-uitzondering. De basisklasse voor alle Exception objecten is de DbException klasse.
Error Geeft de informatie weer van een waarschuwing of fout die wordt geretourneerd door een gegevensbron.
ClientPermission Geleverd voor .NET Framework-gegevensprovidercodetoegangsbeveiligingskenmerken. De basisklasse voor alle ClientPermission objecten is de DBDataPermission klasse.

.NET Framework-gegevensprovider voor SQL Server (SqlClient)

De .NET Framework-gegevensprovider voor SQL Server (SqlClient) gebruikt een eigen protocol om te communiceren met SQL Server. Het is lichtgewicht en presteert goed omdat het is geoptimaliseerd voor toegang tot een SQL Server rechtstreeks zonder een OLE DB- of ODBC-laag (Open Database Connectivity) toe te voegen. De volgende afbeelding contrasteert de .NET Framework-gegevensprovider voor SQL Server met de .NET Framework-gegevensprovider voor OLE DB. De .NET Framework-gegevensprovider voor OLE DB communiceert met een OLE DB-gegevensbron via zowel het OLE DB-serviceonderdeel, dat verbindingspooling- en transactieservices biedt, als de OLE DB-provider voor de gegevensbron.

Notitie

De .NET Framework-gegevensprovider voor ODBC heeft een vergelijkbare architectuur als de .NET Framework-gegevensprovider voor OLE DB; Er wordt bijvoorbeeld een ODBC-serviceonderdeel aanroepen.

Vergelijking van .NET Framework-gegevensprovider voor SQL Server en .NET Framework-gegevensprovider voor OLE DB.

De .NET Framework-gegevensprovider voor SQL Server-klassen bevindt zich in de System.Data.SqlClient naamruimte.

De .NET Framework-gegevensprovider voor SQL Server ondersteunt zowel lokale als gedistribueerde transacties. Voor gedistribueerde transacties wordt de .NET Framework-gegevensprovider voor SQL Server standaard automatisch in een transactie opgenomen en worden transactiegegevens opgehaald uit Windows Component Services of System.Transactions. Zie Transacties en gelijktijdigheid voor meer informatie.

In het volgende codevoorbeeld ziet u hoe u de System.Data.SqlClient naamruimte in uw toepassingen opneemt.

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

.NET Framework-gegevensprovider voor OLE DB

De .NET Framework-gegevensprovider voor OLE DB (OleDb) maakt gebruik van systeemeigen OLE DB via COM-interop om gegevenstoegang in te schakelen. De .NET Framework-gegevensprovider voor OLE DB ondersteunt zowel lokale als gedistribueerde transacties. Voor gedistribueerde transacties wordt de .NET Framework-gegevensprovider voor OLE DB standaard automatisch in een transactie opgenomen en worden transactiegegevens opgehaald uit Windows Component Services. Zie Transacties en gelijktijdigheid voor meer informatie.

In de volgende tabel ziet u de providers die zijn getest met ADO.NET.

Stuurprogramma Provider
SQLOLEDB Microsoft OLE DB-provider voor SQL Server
MSDAORA Microsoft OLE DB-provider voor Oracle
Microsoft.Jet.OLEDB.4.0 OLE DB-provider voor Microsoft Jet

Notitie

Het gebruik van een Access-database (Jet) als gegevensbron voor multithreaded toepassingen, zoals ASP.NET toepassingen, wordt niet aanbevolen. Als u Jet moet gebruiken als gegevensbron voor een ASP.NET toepassing, moet u er dan voor zorgen dat ASP.NET toepassingen die verbinding maken met een Access-database verbindingsproblemen kunnen ondervinden.

De .NET Framework-gegevensprovider voor OLE DB biedt geen ondersteuning voor OLE DB versie 2.5-interfaces. OLE DB-providers waarvoor ondersteuning is vereist voor OLE DB 2.5-interfaces werken niet correct met de .NET Framework-gegevensprovider voor OLE DB. Dit omvat de Microsoft OLE DB-provider voor Exchange en de Microsoft OLE DB-provider voor internetpublicatie.

De .NET Framework-gegevensprovider voor OLE DB werkt niet met de OLE DB-provider voor ODBC (MSDASQL). Als u toegang wilt krijgen tot een ODBC-gegevensbron met behulp van ADO.NET, gebruikt u de .NET Framework-gegevensprovider voor ODBC.

.NET Framework-gegevensprovider voor OLE DB-klassen bevinden zich in de System.Data.OleDb naamruimte. In het volgende codevoorbeeld ziet u hoe u de System.Data.OleDb naamruimte in uw toepassingen opneemt.

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

.NET Framework-gegevensprovider voor ODBC

De .NET Framework-gegevensprovider voor ODBC (Odbc) maakt gebruik van het systeemeigen ODBC-stuurprogrammabeheer (DM) om gegevenstoegang in te schakelen. De ODBC-gegevensprovider ondersteunt zowel lokale als gedistribueerde transacties. Voor gedistribueerde transacties wordt de ODBC-gegevensprovider standaard automatisch in een transactie opgenomen en worden transactiegegevens opgehaald uit Windows Component Services. Zie Transacties en gelijktijdigheid voor meer informatie.

In de volgende tabel ziet u de ODBC-stuurprogramma's die zijn getest met ADO.NET.

Stuurprogramma
SQL Server
Microsoft ODBC voor Oracle
Microsoft Access-stuurprogramma (*.mdb)

.NET Framework-gegevensprovider voor ODBC-klassen bevindt zich in de System.Data.Odbc naamruimte.

In het volgende codevoorbeeld ziet u hoe u de System.Data.Odbc naamruimte in uw toepassingen opneemt.

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

Notitie

Voor de .NET Framework-gegevensprovider voor ODBC is MDAC 2.6 of een latere versie vereist. MDAC 2.8 SP1 wordt aanbevolen.

.NET Framework-gegevensprovider voor Oracle

De .NET Framework-gegevensprovider voor Oracle (OracleClient) maakt gegevenstoegang tot Oracle-gegevensbronnen mogelijk via de Oracle-clientconnectiviteitssoftware. De gegevensprovider ondersteunt Oracle-clientsoftware versie 8.1.7 of een latere versie. De gegevensprovider ondersteunt zowel lokale als gedistribueerde transacties. Zie Transacties en gelijktijdigheid voor meer informatie.

De .NET Framework-gegevensprovider voor Oracle vereist Oracle-clientsoftware (versie 8.1.7 of een latere versie) op het systeem voordat u verbinding kunt maken met een Oracle-gegevensbron.

.NET Framework-gegevensprovider voor Oracle-klassen bevinden zich in de System.Data.OracleClient naamruimte en bevinden zich in de System.Data.OracleClient.dll assembly. U moet verwijzen naar zowel de System.Data.dll als de System.Data.OracleClient.dll wanneer u een toepassing compileert die gebruikmaakt van de gegevensprovider.

In het volgende codevoorbeeld ziet u hoe u de System.Data.OracleClient naamruimte in uw toepassingen opneemt.

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

Een .NET Framework-gegevensprovider kiezen

Afhankelijk van het ontwerp en de gegevensbron voor uw toepassing, kan uw keuze van .NET Framework-gegevensprovider de prestaties, mogelijkheden en integriteit van uw toepassing verbeteren. In de volgende tabel worden de voordelen en beperkingen van elke .NET Framework-gegevensprovider besproken.

Provider Opmerkingen
.NET Framework-gegevensprovider voor SQL Server Aanbevolen voor toepassingen in de middelste laag die gebruikmaken van Microsoft SQL Server.

Aanbevolen voor toepassingen met één laag die gebruikmaken van Microsoft Database Engine (MSDE) of SQL Server.

Aanbevolen voor gebruik van de OLE DB-provider voor SQL Server (SQLOLEDB) met de .NET Framework-gegevensprovider voor OLE DB.
.NET Framework-gegevensprovider voor OLE DB Voor SQL Server wordt de .NET Framework-gegevensprovider voor SQL Server aanbevolen in plaats van deze provider.

Aanbevolen voor toepassingen met één laag die gebruikmaken van Microsoft Access-databases. Het gebruik van een Access-database voor een toepassing in de middelste laag wordt niet aanbevolen.
.NET Framework-gegevensprovider voor ODBC Aanbevolen voor toepassingen met één laag en middelste laag die gebruikmaken van ODBC-gegevensbronnen.
.NET Framework-gegevensprovider voor Oracle Aanbevolen voor toepassingen met één laag en middelste laag die gebruikmaken van Oracle-gegevensbronnen.

EntityClient-provider

De EntityClient-provider wordt gebruikt voor toegang tot gegevens op basis van een Entity Data Model (EDM). In tegenstelling tot de andere .NET Framework-gegevensproviders, communiceert deze niet rechtstreeks met een gegevensbron. In plaats daarvan wordt Entity SQL gebruikt om te communiceren met de onderliggende gegevensprovider. Zie EntityClient-provider voor het Entity Framework voor meer informatie.

Zie ook