.NET Framework-Datenanbieter.NET Framework Data Providers

Mithilfe eines .NET Framework.NET Framework -Datenanbieters werden Verbindungen mit einer Datenbank hergestellt, Befehle ausgeführt und Ergebnisse abgerufen.A .NET Framework.NET Framework data provider is used for connecting to a database, executing commands, and retrieving results. Diese Ergebnisse werden entweder direkt verarbeitet und in einem DataSet -Objekt platziert, um sie dem Benutzer, kombiniert mit Daten aus mehreren Quellen, bei Bedarf verfügbar zu machen, oder sie werden an eine andere Ebene übergeben.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.NET Framework-Datenanbieter sind einfach. Sie erstellen eine Ebene von minimaler Größe zwischen der Datenquelle und dem Code und erhöhen so die Leistung, ohne auf Funktionalität verzichten zu müssen.data providers are lightweight, creating a minimal layer between the data source and code, increasing performance without sacrificing functionality.

Die folgende Tabelle enthält eine Auflistung der Datenanbieter in .NET Framework.NET Framework:The following table lists the data providers that are included in the .NET Framework.NET Framework.

.NET Framework.NET Framework -Datenanbieterdata provider BeschreibungDescription
.NET Framework.NET Framework Datenanbieter für SQLServerData Provider for SQL Server Ermöglicht den Datenzugriff für Microsoft SQL Server.Provides data access for Microsoft SQL Server. Verwendet den System.Data.SqlClient -Namespace.Uses the System.Data.SqlClient namespace.
.NET Framework.NET Framework-Datenanbieter für OLE DBData Provider for OLE DB Für Datenquellen, die mit OLE DB verfügbar gemacht werden.For data sources exposed by using OLE DB. Verwendet den System.Data.OleDb -Namespace.Uses the System.Data.OleDb namespace.
.NET Framework.NET FrameworkDatenanbieter für ODBCData Provider for ODBC Für Datenquellen, die mit ODBC verfügbar gemacht werden.For data sources exposed by using ODBC. Verwendet den System.Data.Odbc -Namespace.Uses the System.Data.Odbc namespace.
.NET Framework.NET Framework Datenanbieter für OracleData Provider for Oracle Für Oracle-Datenquellen.For Oracle data sources. Der .NET Framework.NET Framework -Datenanbieter für Oracle unterstützt Oracle-Clientsoftware der Version 8.1.7 und höher und verwendet den System.Data.OracleClient -Namespace.The .NET Framework.NET Framework Data Provider for Oracle supports Oracle client software version 8.1.7 and later, and uses the System.Data.OracleClient namespace.
EntityClient-AnbieterEntityClient Provider Stellt Datenzugriff für Entity Data Model (EDM)-Anwendungen bereit.Provides data access for Entity Data Model (EDM) applications. Verwendet den System.Data.EntityClient -Namespace.Uses the System.Data.EntityClient namespace.
.NET Framework.NET Framework Datenanbieter für SQLServer Compact 4.0.Data Provider for SQL Server Compact 4.0. Ermöglicht den Datenzugriff für Microsoft SQL Server Compact 4.0.Provides data access for Microsoft SQL Server Compact 4.0. Verwendet den Namespace System.Data.SqlServerCe .Uses the System.Data.SqlServerCe namespace.

Hauptobjekte von .NET Framework-DatenanbieternCore Objects of .NET Framework Data Providers

In der folgenden Tabelle werden die vier Hauptobjekte aufgelistet, aus denen sich ein .NET Framework.NET Framework -Datenanbieter zusammensetzt.The following table outlines the four core objects that make up a .NET Framework.NET Framework data provider.

ObjektObject BeschreibungDescription
Connection Stellt eine Verbindung mit einer bestimmten Datenquelle her.Establishes a connection to a specific data source. Die Basisklasse für alle Connection -Objekte ist die DbConnection -Klasse.The base class for all Connection objects is the DbConnection class.
Command Führt einen Befehl für eine Datenquelle aus.Executes a command against a data source. Macht Parameters verfügbar und kann im Rahmen einer Transaction von einer Connection aus ausgeführt werden.Exposes Parameters and can execute in the scope of a Transaction from a Connection. Die Basisklasse für alle Command -Objekte ist die DbCommand -Klasse.The base class for all Command objects is the DbCommand class.
DataReader Liest einen schreibgeschützten Vorwärtsstream von Daten aus einer Datenquelle.Reads a forward-only, read-only stream of data from a data source. Die Basisklasse für alle DataReader -Objekte ist die DbDataReader -Klasse.The base class for all DataReader objects is the DbDataReader class.
DataAdapter Füllt ein DataSet auf und löst Aktualisierungen mit der Datenquelle auf.Populates a DataSet and resolves updates with the data source. Die Basisklasse für alle DataAdapter -Objekte ist die DbDataAdapter -Klasse.The base class for all DataAdapter objects is the DbDataAdapter class.

Zusätzlich zu den in der Tabelle oben aufgelisteten Hauptklassen enthält ein .NET Framework.NET Framework-Datenanbieter auch die in der folgenden Tabelle aufgeführten Klassen.In addition to the core classes listed in the table earlier in this document, a .NET Framework.NET Framework data provider also contains the classes listed in the following table.

ObjektObject BeschreibungDescription
Transaction Trägt Befehle in Transaktionen an der Datenquelle ein.Enlists commands in transactions at the data source. Die Basisklasse für alle Transaction -Objekte ist die DbTransaction -Klasse.The base class for all Transaction objects is the DbTransaction class. ADO.NET unterstützt auch Transaktionen mit Klassen im System.Transactions -Namespace.ADO.NET also provides support for transactions using classes in the System.Transactions namespace.
CommandBuilder Hilfsobjekt, das automatisch Befehlseigenschaften eines DataAdapter erstellt oder Parameterinformationen aus einer gespeicherten Prozedur ableitet und die Parameters-Auflistung eines Command-Objekts auffüllt.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. Die Basisklasse für alle CommandBuilder -Objekte ist die DbCommandBuilder -Klasse.The base class for all CommandBuilder objects is the DbCommandBuilder class.
ConnectionStringBuilder Hilfsobjekt, das eine einfache Möglichkeit bietet, den Inhalt von Verbindungszeichenfolgen zu erstellen und zu verwalten, die von den Connection -Objekten verwendet werden.A helper object that provides a simple way to create and manage the contents of connection strings used by the Connection objects. Die Basisklasse für alle ConnectionStringBuilder -Objekte ist die DbConnectionStringBuilder -Klasse.The base class for all ConnectionStringBuilder objects is the DbConnectionStringBuilder class.
Parameter Definiert Eingabe-, Ausgabe- und Rückgabewertparameter für Befehle und gespeicherte Prozeduren.Defines input, output, and return value parameters for commands and stored procedures. Die Basisklasse für alle Parameter -Objekte ist die DbParameter -Klasse.The base class for all Parameter objects is the DbParameter class.
Exception Wird zurückgegeben, wenn in der Datenquelle ein Fehler auftritt.Returned when an error is encountered at the data source. Wenn auf dem Client ein Fehler festgestellt wird, lösen .NET Framework.NET Framework-Datenanbieter eine .NET Framework.NET Framework-Ausnahme aus.For an error encountered at the client, .NET Framework.NET Framework data providers throw a .NET Framework.NET Framework exception. Die Basisklasse für alle Exception -Objekte ist die DbException -Klasse.The base class for all Exception objects is the DbException class.
Error Macht die Informationen aus einer von einer Datenquelle zurückgegebenen Warnung bzw. einem von einer Datenquelle zurückgegebenen Fehler verfügbar.Exposes the information from a warning or error returned by a data source.
ClientPermission Wird für Codezugriffs-Sicherheitsattribute von .NET Framework.NET Framework -Datenanbietern bereitgestellt.Provided for .NET Framework.NET Framework data provider code access security attributes. Die Basisklasse für alle ClientPermission -Objekte ist die DBDataPermission -Klasse.The base class for all ClientPermission objects is the DBDataPermission class.

.NET Framework-Datenanbieter für SQL Server (SqlClient).NET Framework Data Provider for SQL Server (SqlClient)

Die .NET Framework.NET Framework -Datenanbieter für SQL Server (SqlClient) verwendet ein eigenes Protokoll für die Kommunikation mit SQL Server.The .NET Framework.NET Framework Data Provider for SQL Server (SqlClient) uses its own protocol to communicate with SQL Server. Es ist nicht sehr umfangreich und leistungsfähig, da sie Zugriff auf eine SQL-Server direkt ohne das Hinzufügen einer Ebene mit OLE DB oder Open Database Connectivity (ODBC) optimiert ist.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. Die folgende Abbildung stellt die .NET Framework.NET Framework -Datenanbieter für SQL Server mit der .NET Framework.NET Framework -Datenanbieter für OLE DB.The following illustration contrasts the .NET Framework.NET Framework Data Provider for SQL Server with the .NET Framework.NET Framework Data Provider for OLE DB. Der .NET Framework.NET Framework -Datenanbieter für OLE DB kommuniziert mit einer OLE DB-Datenquelle über die OLE DB-Dienstkomponente, die das Verbindungspooling und Transaktionsdienste bereitstellt, und über den OLE DB-Anbieter für die Datenquelle.The .NET Framework.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.

Hinweis

Die Architektur des .NET Framework.NET Framework -Datenanbieters für ODBC ähnelt der des .NET Framework.NET Framework -Datenanbieters für OLE DB. So wird z. B. bei beiden eine ODBC-Dienstkomponente aufgerufen.The .NET Framework.NET Framework Data Provider for ODBC has a similar architecture to the .NET Framework.NET Framework Data Provider for OLE DB; for example, it calls into an ODBC Service Component.

DatenanbieterData providers
Vergleich des .NET Framework-Datenanbieters für SQL Server und des .NET Framework-Datenanbieters für OLE DBComparison of the .NET Framework Data Provider for SQL Server and the .NET Framework Data Provider for OLE DB

Die .NET Framework.NET Framework -Datenanbieter für SQL Server-Klassen befinden sich in der System.Data.SqlClient Namespace.The .NET Framework.NET Framework Data Provider for SQL Server classes are located in the System.Data.SqlClient namespace.

Die .NET Framework.NET Framework -Datenanbieter für SQL Server unterstützt sowohl lokale als auch verteilte Transaktionen.The .NET Framework.NET Framework Data Provider for SQL Server supports both local and distributed transactions. Für verteilte Transaktionen die .NET Framework.NET Framework -Datenanbieter für SQL Server, wird standardmäßig automatisch in einer Transaktion eingetragen, und ruft Transaktionsdetails von den Windows-Komponentendiensten ab oder System.Transactions.For distributed transactions, the .NET Framework.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. Weitere Informationen finden Sie unter Transaktionen und Parallelität.For more information, see Transactions and Concurrency.

Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.SqlClient -Namespace in Anwendungen einbinden können.The following code example shows how to include the System.Data.SqlClient namespace in your applications.

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

.NET Framework-Datenanbieter für OLE DB.NET Framework Data Provider for OLE DB

Der .NET Framework.NET Framework -Datenanbieter für OLE DB (OleDb) ermöglicht den Datenzugriff mithilfe von systemeigenem OLE DB über COM-Interop.The .NET Framework.NET Framework Data Provider for OLE DB (OleDb) uses native OLE DB through COM interop to enable data access. Der .NET Framework.NET Framework -Datenanbieter für OLE DB unterstützt sowohl lokale als auch verteilte Transaktionen.The .NET Framework.NET Framework Data Provider for OLE DB supports both local and distributed transactions. Bei verteilten Transaktionen trägt sich der .NET Framework.NET Framework -Datenanbieter für OLE DB standardmäßig automatisch in eine Transaktion ein und ruft Transaktionsdetails von den Windows-Komponentendiensten ab.For distributed transactions, the .NET Framework.NET Framework Data Provider for OLE DB, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services. Weitere Informationen finden Sie unter Transaktionen und Parallelität.For more information, see Transactions and Concurrency.

In der folgenden Tabelle werden die Anbieter aufgeführt, die mit ADO.NETADO.NETgetestet wurden.The following table shows the providers that have been tested with ADO.NETADO.NET.

TreiberDriver AnbieterProvider
SQLOLEDBSQLOLEDB Microsoft OLE DB-Anbieter für SQL ServerMicrosoft OLE DB provider for SQL Server
MSDAORAMSDAORA Microsoft OLE DB-Anbieter für OracleMicrosoft OLE DB provider for Oracle
Microsoft.Jet.OLEDB.4.0Microsoft.Jet.OLEDB.4.0 OLE DB-Anbieter für Microsoft JetOLE DB provider for Microsoft Jet

Hinweis

Die Verwendung einer Access-Datenbank (Jet-Datenbank) als Datenquelle für Multithread-Anwendungen (z. B. ASP.NETASP.NET -Anwendungen) wird nicht empfohlen.Using an Access (Jet) database as a data source for multithreaded applications, such as ASP.NETASP.NET applications, is not recommended. Wenn Sie Jet als Datenquelle für eine ASP.NETASP.NET -Anwendung verwenden müssen, müssen Sie sich bewusst sein, dass beim Herstellen von Verbindungen zwischen ASP.NETASP.NET -Anwendungen und einer Access-Datenbank Verbindungsprobleme auftreten können.If you must use Jet as a data source for an ASP.NETASP.NET application, realize that ASP.NETASP.NET applications connecting to an Access database can encounter connection problems.

Der .NET Framework.NET Framework -Datenanbieter für OLE DB unterstützt keine OLE DB 2.5-Schnittstellen.The .NET Framework.NET Framework Data Provider for OLE DB does not support OLE DB version 2.5 interfaces. OLE DB-Anbieter, die Unterstützung von OLE DB 2.5-Schnittstellen benötigen, funktionieren in Verbindung mit dem .NET Framework.NET Framework -Datenanbieter für OLE DB nicht ordnungsgemäß.OLE DB Providers that require support for OLE DB 2.5 interfaces will not function correctly with the .NET Framework.NET Framework Data Provider for OLE DB. Dies betrifft auch den Microsoft OLE DB-Anbieter für Exchange und den Microsoft OLE DB-Anbieter für Internet Publishing.This includes the Microsoft OLE DB provider for Exchange and the Microsoft OLE DB provider for Internet Publishing.

Der .NET Framework.NET Framework -Datenanbieter für OLE DB funktioniert nicht in Verbindung mit dem OLE DB-Anbieter für ODBC (MSDASQL).The .NET Framework.NET Framework Data Provider for OLE DB does not work with the OLE DB provider for ODBC (MSDASQL). Wenn Sie mit ADO.NETADO.NET auf eine ODBC-Datenquelle zugreifen möchten, verwenden Sie den .NET Framework.NET Framework-Datenanbieter für ODBC.To access an ODBC data source using ADO.NETADO.NET, use the .NET Framework.NET Framework Data Provider for ODBC.

Die Klassen des.NET Framework.NET Framework -Datenanbieters für OLE DB befinden sich im System.Data.OleDb -Namespace..NET Framework.NET Framework Data Provider for OLE DB classes are located in the System.Data.OleDb namespace. Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.OleDb-Namespace in Anwendungen einbinden können.The following code example shows how to include the System.Data.OleDb namespace in your applications.

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

.NET Framework-Datenanbieter für ODBC.NET Framework Data Provider for ODBC

Der .NET Framework.NET Framework -Datenanbieter für ODBC (Odbc) verwendet für die Bereitstellung des Datenzugriffs den systemeigenen ODBC-Treiber-Manager.The .NET Framework.NET Framework Data Provider for ODBC (Odbc) uses the native ODBC Driver Manager (DM) to enable data access. Der ODBC-Datenanbieter unterstützt sowohl lokale als auch verteilte Transaktionen.The ODBC data provider supports both local and distributed transactions. Bei verteilten Transaktionen trägt sich der ODBC-Datenanbieter standardmäßig automatisch in eine Transaktion ein und ruft Transaktionsdetails von den Windows-Komponentendiensten ab.For distributed transactions, the ODBC data provider, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services. Weitere Informationen finden Sie unter Transaktionen und Parallelität.For more information, see Transactions and Concurrency.

In der folgenden Tabelle werden die ODBC-Treiber aufgeführt, die mit ADO.NETADO.NETgetestet wurden.The following table shows the ODBC drivers tested with ADO.NETADO.NET.

TreiberDriver
SQL ServerSQL Server
Microsoft ODBC für OracleMicrosoft ODBC for Oracle
Microsoft Access Driver (*.mdb)Microsoft Access Driver (*.mdb)

Die Klassen des.NET Framework.NET Framework -Datenbieters für ODBC befinden sich im System.Data.Odbc -Namespace..NET Framework.NET Framework Data Provider for ODBC classes are located in the System.Data.Odbc namespace.

Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.Odbc-Namespace in Anwendungen einbinden können.The following code example shows how to include the System.Data.Odbc namespace in your applications.

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

Hinweis

Der .NET Framework.NET Framework -Datenanbieter für ODBC erfordert MDAC 2.6 oder höher, wir empfehlen MDAC 2.8 SP1.The .NET Framework.NET Framework Data Provider for ODBC requires MDAC 2.6 or a later version, and MDAC 2.8 SP1 is recommended. Sie können MDAC 2.8 SP1 aus dem Developer Center für Datenzugriff und -speicherungherunterladen.You can download MDAC 2.8 SP1 from the Data Access and Storage Developer Center.

.NET Framework-Datenanbieter für Oracle.NET Framework Data Provider for Oracle

Der .NET Framework.NET Framework -Datenanbieter für Oracle (OracleClient) ermöglicht den Datenzugriff auf Oracle-Daten mithilfe von Oracle-Clientverbindungssoftware.The .NET Framework.NET Framework Data Provider for Oracle (OracleClient) enables data access to Oracle data sources through Oracle client connectivity software. Der Datenanbieter unterstützt Oracle-Clientsoftware Version 8.1.7 oder höher.The data provider supports Oracle client software version 8.1.7 or a later version. Der Datenanbieter unterstützt sowohl lokale als auch verteilte Transaktionen.The data provider supports both local and distributed transactions. Weitere Informationen finden Sie unter Transaktionen und Parallelität.For more information, see Transactions and Concurrency.

Für die Herstellung einer Verbindung mit der Oracle-Datenquelle benötigt der .NET Framework.NET Framework -Datenanbieter für Oracle die Oracle-Clientsoftware (Version 8.1.7 oder höher) im System.The .NET Framework.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.

Die Klassen des.NET Framework.NET Framework -Datenanbieters für Oracle befinden sich im System.Data.OracleClient -Namespace und sind in der System.Data.OracleClient.dll -Assembly enthalten..NET Framework.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. Beim Kompilieren einer Anwendung, die den Datenanbieter verwendet, müssen Sie auf die Dateien System.Data.dll und System.Data.OracleClient.dll verweisen.You must reference both the System.Data.dll and the System.Data.OracleClient.dll when you compile an application that uses the data provider.

Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.OracleClient -Namespace in Anwendungen einbinden können.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;  

Auswählen eines .NET Framework-DatenanbietersChoosing a .NET Framework Data Provider

Abhängig vom Design und der Datenquelle für Ihre Anwendung kann die Auswahl des richtigen .NET Framework.NET Framework -Datenanbieters dazu beitragen, die Leistung, Effizienz und Integrität Ihrer Anwendung zu verbessern.Depending on the design and data source for your application, your choice of .NET Framework.NET Framework data provider can improve the performance, capability, and integrity of your application. In der folgenden Tabelle werden die Vorteile und Grenzen der einzelnen .NET Framework.NET Framework -Datenanbieter erläutert.The following table discusses the advantages and limitations of each .NET Framework.NET Framework data provider.

AnbieterProvider HinweiseNotes
.NET Framework.NET Framework Datenanbieter für SQLServerData Provider for SQL Server Empfohlen für Anwendungen der mittleren Ebene, die Microsoft SQL Server verwenden.Recommended for middle-tier applications that use Microsoft SQL Server.

Es wird empfohlen, ein-Ebenen-Anwendungen, die Microsoft-Datenbank-Engine (MSDE) oder SQL Server verwenden.Recommended for single-tier applications that use Microsoft Database Engine (MSDE) or SQL Server.

Empfohlen bei Verwendung des OLE DB-Anbieter für SQL Server (SQLOLEDB) mit der .NET Framework.NET Framework -Datenanbieter für OLE DB.Recommended over use of the OLE DB provider for SQL Server (SQLOLEDB) with the .NET Framework.NET Framework Data Provider for OLE DB.
.NET Framework.NET Framework -Datenanbieter für OLE DBData Provider for OLE DB Für SQL Server die .NET Framework.NET Framework -Datenanbieter für SQL Server wird empfohlen, anstelle von diesem Anbieter.For SQL Server, the .NET Framework.NET Framework Data Provider for SQL Server is recommended instead of this provider.

Empfohlen für Anwendungen mit nur einer Ebene, die Microsoft Access-Datenbanken verwenden.Recommended for single-tier applications that use Microsoft Access databases. Von der Verwendung einer Access-Datenbank für eine Anwendung der mittleren Ebene wird abgeraten.Use of an Access database for a middle-tier application is not recommended.
.NET Framework.NET Framework Datenanbieter für ODBCData Provider for ODBC Empfohlen für Anwendungen in der mittleren Ebene und Anwendungen mit nur einer Ebene, die ODBC-Datenquellen verwenden.Recommended for middle and single-tier applications that use ODBC data sources.
.NET Framework.NET Framework Datenanbieter für OracleData Provider for Oracle Empfohlen für Anwendungen in der mittleren Ebene und Anwendungen mit nur einer Ebene, die Oracle-Datenquellen verwenden.Recommended for middle and single-tier applications that use Oracle data sources.

EntityClient-AnbieterEntityClient Provider

Der EntityClient-Anbieter wird für den Datenzugriff basierend auf einem Entity Data Model (EDM) verwendet.The EntityClient provider is used for accessing data based on an Entity Data Model (EDM). Im Gegensatz zu anderen .NET Framework-Datenanbietern interagiert er nicht direkt mit einer Datenquelle.Unlike the other .NET Framework data providers, it does not interact directly with a data source. Stattdessen kommuniziert er über Entity SQL mit dem zugrunde liegenden Datenanbieter.Instead, it uses Entity SQL to communicate with the underlying data provider. Weitere Informationen finden Sie unter EntityClient and Entity SQL.For more information, see EntityClient and Entity SQL.

Siehe auchSee also