.NET Framework-Datenanbieter.NET Framework Data Providers

Ein .NET Framework Datenanbieter wird zum Herstellen einer Verbindung mit einer Datenbank, zum Ausführen von Befehlen und zum Abrufen von Ergebnissen verwendet.A .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 Datenanbieter sind einfach, und Sie erstellen eine minimale Ebene zwischen der Datenquelle und dem Code und erhöhen so die Leistung, ohne die Funktionalität zu beeinträchtigen..NET Framework data providers are lightweight, creating a minimal layer between the data source and code, increasing performance without sacrificing functionality.

In der folgenden Tabelle sind die Datenanbieter aufgelistet, die in der .NET Framework enthalten sind.The following table lists the data providers that are included in the .NET Framework.

.NET Framework-Datenanbieter.NET Framework data provider BeschreibungDescription
.NET Framework-Datenanbieter für SQL Server.NET Framework Data 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-Datenanbieter für OLE DB.NET Framework Data 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-Datenanbieter für ODBC.NET Framework Data 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-Datenanbieter für Oracle.NET Framework Data Provider for Oracle Für Oracle-Datenquellen.For Oracle data sources. Die .NET Framework Datenanbieter für Oracle unterstützt Oracle-Client Softwareversion 8.1.7 und höher und verwendet System.Data.OracleClient den-Namespace.The .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 Datenanbieter für SQL Server Compact 4,0..NET Framework Data Provider for SQL Server Compact 4.0. Bietet 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, aus denen ein .NET Framework Datenanbieter besteht, beschrieben.The following table outlines the four core objects that make up a .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 Connectionaus 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 weiter oben in diesem Dokument aufgeführten Kernklassen enthält ein .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 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. Für einen Fehler, der auf dem Client aufgetreten ist, lösen .NET Framework Datenanbieter eine .NET Framework-Ausnahme aus.For an error encountered at the client, .NET Framework data providers throw a .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 .NET Framework-Datenanbieter Code Zugriffs-Sicherheits Attribute bereitgestellt.Provided for .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 Datenanbieter für SQL Server (SqlClient) verwendet für die Kommunikation mit SQL Server ein eigenes Protokoll.The .NET Framework Data Provider for SQL Server (SqlClient) uses its own protocol to communicate with SQL Server. Es ist einfach und führt eine gute Leistung aus, da es für den direkten Zugriff auf eine SQL Server optimiert ist, ohne eine OLE DB oder Open Database Connectivity (ODBC)-Ebene hinzuzufügen.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. In der folgenden Abbildung wird der .NET Framework Datenanbieter für SQL Server mit dem .NET Framework Datenanbieter für OLE DB gegen überstehen.The following illustration contrasts the .NET Framework Data Provider for SQL Server with the .NET Framework Data Provider for OLE DB. Die .NET Framework Datenanbieter für OLE DB über die OLE DB-Dienst Komponente, die Verbindungspooling und Transaktionsdienste bereitstellt, und den OLE DB Anbieter für die Datenquelle mit einer OLE DB Datenquelle kommuniziert.The .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

Der .NET Framework Datenanbieter für ODBC verfügt über eine ähnliche Architektur wie der .NET Framework Datenanbieter für OLE DB. Beispielsweise wird eine ODBC-Dienst Komponente aufgerufen.The .NET Framework Data Provider for ODBC has a similar architecture to the .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 Datenanbieter für SQL Server-Klassen befinden sich im System.Data.SqlClient -Namespace.The .NET Framework Data Provider for SQL Server classes are located in the System.Data.SqlClient namespace.

Der .NET Framework Datenanbieter für SQL Server unterstützt sowohl lokale als auch verteilte Transaktionen.The .NET Framework Data Provider for SQL Server supports both local and distributed transactions. Bei verteilten Transaktionen trägt die .NET Framework Datenanbieter für SQL Server standardmäßig automatisch in eine Transaktion ein und ruft Transaktionsdetails von den Windows-Komponenten Diensten oder System.Transactionsab.For distributed transactions, the .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 undParallelitä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 Datenanbieter für OLE DB (OleDb) verwendet Native OLE DB durch COM-Interop, um den Datenzugriff zu ermöglichen.The .NET Framework Data Provider for OLE DB (OleDb) uses native OLE DB through COM interop to enable data access. Der .NET Framework Datenanbieter für OLE DB unterstützt sowohl lokale als auch verteilte Transaktionen.The .NET Framework Data Provider for OLE DB supports both local and distributed transactions. Bei verteilten Transaktionen trägt die .NET Framework Datenanbieter für OLE DB standardmäßig automatisch in eine Transaktion ein und ruft Transaktionsdetails von den Windows-Komponenten Diensten ab.For distributed transactions, the .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 undParallelität.For more information, see Transactions and Concurrency.

In der folgenden Tabelle sind die Anbieter aufgeführt, die mit ADO.net getestet wurden.The following table shows the providers that have been tested with ADO.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) als Datenquelle für Multithreadanwendungen (z. b. ASP.NET-Anwendungen) wird nicht empfohlen.Using an Access (Jet) database as a data source for multithreaded applications, such as ASP.NET applications, is not recommended. Wenn Sie Jet als Datenquelle für eine ASP.NET-Anwendung verwenden müssen, stellen Sie fest, dass ASP.NET-Anwendungen, die eine Verbindung mit einer Access-Datenbank herstellen, Verbindungsprobleme auftreten können.If you must use Jet as a data source for an ASP.NET application, realize that ASP.NET applications connecting to an Access database can encounter connection problems.

Die .NET Framework Datenanbieter für OLE DB unterstützt keine Schnittstellen der OLE DB, Version 2,5.The .NET Framework Data Provider for OLE DB does not support OLE DB version 2.5 interfaces. OLE DB Anbieter, die Unterstützung für OLE DB 2,5-Schnittstellen benötigen, funktionieren mit dem .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 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.

Die .NET Framework Datenanbieter für OLE DB funktioniert nicht mit dem OLE DB Anbieter für ODBC (MSDASQL).The .NET Framework Data Provider for OLE DB does not work with the OLE DB provider for ODBC (MSDASQL). Verwenden Sie für den Zugriff auf eine ODBC-Datenquelle mithilfe von ADO.net die .NET Framework-Datenanbieter für ODBC.To access an ODBC data source using ADO.NET, use the .NET Framework Data Provider for ODBC.

.NET Framework Datenanbieter für OLE DB-Klassen befinden sich im System.Data.OleDb -Namespace..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 Datenanbieter für ODBC (ODBC) verwendet den systemeigenen ODBC-Treiber-Manager (DM), um den Datenzugriff zu ermöglichen.The .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 undParallelität.For more information, see Transactions and Concurrency.

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

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

.NET Framework Datenanbieter für ODBC-Klassen befinden sich im System.Data.Odbc -Namespace..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

Die .NET Framework Datenanbieter für ODBC erfordert MDAC 2,6 oder höher, und MDAC 2,8 SP1 wird empfohlen.The .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 Datenanbieter für Oracle (OracleClient) ermöglicht den Datenzugriff auf Oracle-Datenquellen über Oracle-Clientkonnektivitätssoftware.The .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 undParallelität.For more information, see Transactions and Concurrency.

Die .NET Framework Datenanbieter für Oracle erfordert eine Oracle-Client Software (Version 8.1.7 oder eine höhere Version) im System, bevor Sie eine Verbindung mit einer Oracle-Datenquelle herstellen können.The .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.

.NET Framework Datenanbieter für Oracle-Klassen befinden sich im System.Data.OracleClient -Namespace und sind in der System.Data.OracleClient.dll -Assembly enthalten..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 Entwurf und der Datenquelle für Ihre Anwendung kann die Auswahl des .NET Framework Datenanbieters die Leistung, die Fähigkeit und die Integrität Ihrer Anwendung verbessern.Depending on the design and data source for your application, your choice of .NET Framework data provider can improve the performance, capability, and integrity of your application. In der folgenden Tabelle werden die Vorteile und Einschränkungen der einzelnen .NET Framework-Datenanbieter erläutert.The following table discusses the advantages and limitations of each .NET Framework data provider.

AnbieterProvider HinweiseNotes
.NET Framework-Datenanbieter für SQL Server.NET Framework Data 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.

Empfohlen für Anwendungen mit nur einer Ebene, die Microsoft Datenbank-Engine (MSDE) oder SQL Server verwenden.Recommended for single-tier applications that use Microsoft Database Engine (MSDE) or SQL Server.

Es wird empfohlen, den OLE DB Anbieter für SQL Server (SQLOLEDB) mit dem .NET Framework Datenanbieter für OLE DB zu verwenden.Recommended over use of the OLE DB provider for SQL Server (SQLOLEDB) with the .NET Framework Data Provider for OLE DB.
.NET Framework-Datenanbieter für OLE DB.NET Framework Data Provider for OLE DB Für SQL Server wird anstelle dieses Anbieters die .NET Framework Datenanbieter für SQL Server empfohlen.For SQL Server, the .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-Datenanbieter für ODBC.NET Framework Data 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-Datenanbieter für Oracle.NET Framework Data 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-Anbieter für die Entity Framework.For more information, see EntityClient Provider for the Entity Framework.

Siehe auchSee also