.NET Framework-Datenprovider
Ein .NET Framework-Datenprovider wird für die Erstellung einer Verbindung mit einer Datenbank, zur Ausführung von Befehlen und zum Abrufen von Ergebnissen verwendet. Diese Ergebnisse werden entweder direkt verarbeitet oder in ein ADO.NET-DataSet gestellt, um sie dem Benutzer, kombiniert mit Daten aus mehreren Quellen, ad hoc zur Verfügung zu stellen oder zwischen Ebenen zu verschieben. Der .NET Framework-Datenprovider wurde kompakt entworfen, so dass eine minimale Schicht zwischen der Datenquelle und dem Code erstellt wird, wodurch die Leistung ohne Funktionseinbußen erhöht wird.
Die folgende Tabelle enthält die vier Hauptobjekte, aus denen ein .NET Framework-Datenprovider besteht.
Objekt | Beschreibung |
---|---|
Connection | Stellt eine Verbindung mit einer bestimmten Datenquelle her. |
Command | Führt einen Befehl für eine Datenquelle aus. Stellt Parameter zur Verfügung und kann innerhalb des Bereichs einer Transaction aus einer Connection ausgeführt werden. |
DataReader | Liest einen schreibgeschützten Vorwärtsdatenstream aus einer Datenquelle. |
DataAdapter | Füllt ein DataSet und löst Aktualisierungen in der Datenquelle auf. |
.NET Framework enthält den .NET Framework-Datenprovider für SQL Server (für Microsoft SQL Server, Version 7.0 oder höher), den .NET Framework-Datenprovider für OLE DB und den .NET Framework-Datenprovider für ODBC.
Hinweis Der .NET Framework-Datenprovider für ODBC ist in .NET Framework, Version 1.0, nicht enthalten. Wenn Sie den .NET Framework-Datenprovider für ODBC benötigen und .NET Framework, Version 1.0, verwenden, können Sie den .NET Framework-Datenprovider für ODBC unter https://msdn.microsoft.com/downloads downloaden. Der Namespace für den gedownloadeten .NET Framework-Datenprovider für ODBC lautet Microsoft.Data.Odbc.
Der .NET Framework-Datenprovider für SQL Server
Der .NET Framework-Datenprovider für SQL Server verwendet ein eigenes Protokoll für die Kommunikation mit SQL Server. Dieses Protokoll ist kompakt und funktioniert sehr gut, weil es für den direkten Zugriff auf einen SQL-Server optimiert wurde, so dass das Hinzufügen einer OLE DB- oder ODBC-Schicht (Open Database Connectivity) nicht erforderlich ist. Die folgende Abbildung stellt den .NET Framework-Datenprovider für SQL Server dem .NET Framework-Datenprovider für OLE DB gegenüber. Der .NET Framework-Datenprovider für OLE DB kommuniziert mit einer OLE DB-Datenquelle sowohl über die OLE DB-Dienstkomponente, die das Verbindungspooling und Transaktionsdienste enthält, als auch über den OLE DB-Provider für die Datenquelle.
Hinweis Der .NET Framework-Datenprovider für ODBC hat eine ähnliche Architektur wie der .NET Framework-Datenprovider für OLE DB. Er ruft z. B. eine ODBC-Dienstkomponente auf.
Vergleich zwischen dem .NET Framework-Datenprovider für SQL Server und dem .NET Framework-Datenprovider für OLE DB.
Wenn Sie den .NET Framework-Datenprovider für SQL Server verwenden möchten, müssen Sie Zugriff auf Microsoft SQL Server 7.0 oder höher haben. Klassen für den .NET Framework-Datenprovider für SQL Server befinden sich im System.Data.SqlClient-Namespace. Verwenden Sie für frühere Versionen von Microsoft SQL Server den .NET Framework-Datenprovider für OLE DB mit dem SQL Server-OLE DB-Provider (SQLOLEDB).
Der .NET Framework-Datenprovider für SQL Server unterstützt sowohl lokale als auch verteilte Transaktionen. Bei verteilten Transaktionen trägt sich der .NET Framework-Datenprovider für SQL Server in der Standardeinstellung automatisch in eine Transaktion ein und ruft Transaktionsdetails von Windows 2000-Komponentendiensten ab. Weitere Informationen finden Sie unter Durchführen von Transaktionen.
Das folgende Codebeispiel zeigt, wie der System.Data.SqlClient-Namespace in die Anwendung eingefügt wird.
Imports System.Data.SqlClient
[C#]
using System.Data.SqlClient;
Für den .NET Framework-Datenprovider für SQL Server müssen Sie Microsoft Data Access Components (MDAC), Version 2.6 oder höher, installieren.
Der .NET Framework-Datenprovider für OLE DB
Der .NET Framework-Datenprovider für OLE DB verwendet für den Datenzugriff systemeigenes OLE DB über COM-Interop. Der .NET Framework-Datenprovider für OLE DB unterstützt sowohl lokale als auch verteilte Transaktionen. Bei verteilten Transaktionen trägt sich der .NET Framework-Datenprovider für OLE DB in der Standardeinstellung automatisch in eine Transaktion ein und ruft Transaktionsdetails von Windows 2000-Komponentendiensten ab. Weitere Informationen finden Sie unter Durchführen von Transaktionen.
Wenn Sie den .NET Framework-Datenprovider für OLE DB verwenden möchten, müssen Sie einen OLE DB-Provider verwenden, der die unter Vom .NET Framework-Datenprovider für OLE DB verwendete OLE DB-Schnittstellen aufgeführten OLE DB-Schnittstellen unterstützt.
Die folgende Tabelle enthält die Provider, die mit ADO.NET getestet wurden.
Treiber | 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 |
**Hinweis **Es ist nicht empfehlenswert, eine Access-Datenbank (Jet) als Datenquelle für Multithread-Anwendungen wie ASP.NET-Anwendungen zu verwenden. Wenn Sie für eine ASP.NET-Anwendung Access als Datenquelle verwenden müssen und keine Alternative wie SQL Server oder MSDE zur Verfügung steht, beachten Sie, dass bei ASP.NET-Anwendungen, die eine Verbindung mit einer Access-Datenbank herstellen, Verbindungsprobleme auftreten können, die meist mit Sicherheitsberechtigungen zusammenhängen. Hilfe für die Problembehebung beim Verwenden von ASP.NET und einer Access-Datenbank finden Sie im Artikel Q316675 "PRB: Cannot Connect to Access Database from ASP.NET" (nur auf Englisch verfügbar) in der Microsoft Knowledge Base unter https://support.microsoft.com.
Der .NET Framework-Datenprovider für OLE DB unterstützt keine OLE DB 2.5-Schnittstellen. OLE DB-Provider, für die eine Unterstützung der OLE DB 2.5-Schnittstellen erforderlich ist, funktionieren nicht ordnungsgemäß mit dem .NET Framework-Datenprovider für OLE DB. Dazu gehören der Microsoft OLE DB-Provider für Exchange und der Microsoft OLE DB-Provider für Internet Publishing.
Der .NET Framework-Datenprovider für OLE DB funktioniert nicht mit dem OLE DB-Provider für ODBC (MSDASQL). Um mit Hilfe von ADO.NET auf eine ODBC-Datenquelle zuzugreifen, verwenden Sie den .NET Framework-Datenprovider für ODBC.
.NET Framework-Datenprovider für OLE DB-Klassen befinden sich im System.Data.OleDb-Namespace. Das folgende Codebeispiel zeigt, wie der System.Data.OleDb-Namespace in die Anwendung eingefügt wird.
Imports System.Data.OleDb
[C#]
using System.Data.OleDb;
Für den .NET Framework-Datenprovider für OLE DB muss MDAC 2.6 oder höher installiert sein.
Der .NET Framework-Datenprovider für ODBC
Der .NET Framework-Datenprovider für ODBC verwendet für den Datenzugriff systemeigene ODBC-Treiber-Manager über COM-Interop. Der ODBC-Datenprovider unterstützt sowohl lokale als auch verteilte Transaktionen. Bei verteilten Transaktionen trägt sich der ODBC-Datenprovider in der Standardeinstellung automatisch in eine Transaktion ein und ruft Transaktionsdetails von Windows 2000-Komponentendiensten ab. Weitere Informationen finden Sie unter Durchführen von Transaktionen.
Die folgende Tabelle enthält die ODBC-Treiber, die mit ADO.NET getestet wurden.
Treiber |
---|
SQL Server |
Microsoft ODBC für Oracle |
Microsoft Access-Treiber (*.mdb) |
Klassen für den .NET Framework-Datenprovider für ODBC befinden sich im System.Data.Odbc-Namespace.
Hinweis Der .NET Framework-Datenprovider für ODBC ist in .NET Framework, Version 1.0, nicht enthalten. Wenn Sie den .NET Framework-Datenprovider für ODBC benötigen und .NET Framework, Version 1.0, verwenden, können Sie den .NET Framework-Datenprovider für ODBC unter https://msdn.microsoft.com/downloads downloaden. Der Namespace für den gedownloadeten .NET Framework-Datenprovider für ODBC lautet Microsoft.Data.Odbc.
Das folgende Codebeispiel zeigt, wie der System.Data.Odbc-Namespace in die Anwendung eingefügt wird.
Imports System.Data.Odbc
[C#]
using System.Data.Odbc;
Für den .NET Framework-Datenprovider für ODBC muss MDAC 2.6 oder höher installiert sein. MDAC 2.7 wird empfohlen.
Der .NET Framework-Datenprovider für Oracle
Der .NET Framework-Datenprovider für Oracle ermöglicht den Datenzugriff auf Oracle-Datenquellen mit Oracle-Clientkonnektivitätssoftware. Der Datenprovider unterstützt Oracle-Clientsoftware, Version 8.1.7, und höher. Der Datenprovider unterstützt sowohl lokale als auch verteilte Transaktionen (der Datenprovider trägt sich automatisch in vorhandene verteilte Transaktionen ein, unterstützt aber derzeit nicht die EnlistDistributedTransaction-Methode). Weitere Informationen finden Sie unter Durchführen von Transaktionen.
Bevor Sie mit dem .NET Framework-Datenprovider für Oracle eine Verbindung mit einer Oracle-Datenquelle herstellen können, muss die Oracle-Clientsoftware, Version 8.1.7 oder höher, im System installiert sein.
Die Klassen des .NET Framework-Datenproviders für Oracle befinden sich im System.Data.OracleClient-Namespace und sind in der System.Data.OracleClient.dll-Assembly enthalten. Beim Kompilieren einer Anwendung, die den Datenprovider verwendet, müssen Sie sowohl auf System.Data.dll als auch auf System.Data.OracleClient.dll verweisen.
Hinweis Der .NET Framework-Datenprovider für Oracle ist in .NET Framework, Version 1.0, nicht enthalten. Wenn Sie den .NET Framework-Datenprovider für Oracle benötigen und .NET Framework, Version 1.0, verwenden, können Sie den .NET Framework-Datenprovider für Oracle unter https://msdn.microsoft.com/downloads downloaden.
Das folgende Codebeispiel zeigt, wie der System.Data.OracleClient-Namespace in die Anwendung eingefügt wird.
Imports System.Data.OracleClient
[C#]
using System.Data.OracleClient;
Für den .NET Framework-Datenprovider für Oracle muss MDAC 2.6 oder höher installiert sein.
Auswählen eines .NET Framework-Datenproviders
Abhängig vom Entwurf und der Datenquelle der Anwendung kann die Auswahl des .NET Framework-Datenproviders Leistung, Funktionen und Integrität der Anwendung verbessern. Die folgende Tabelle zeigt die Vorteile und Einschränkungen für jeden .NET Framework-Datenprovider.
Provider | Hinweise |
---|---|
.NET Framework-Datenprovider für SQL Server | Empfohlen für Anwendungen mittlerer Ebene, die Microsoft SQL Server 7.0 oder höher verwenden.
Empfohlen für Anwendungen mit einer Ebene, die Microsoft Data Engine (MSDE) oder Microsoft SQL Server 7.0 oder höher verwenden. Empfohlen gegenüber der Verwendung des OLE DB-Providers für SQL Server (SQLOLEDB) mit dem .NET Framework-Datenprovider für OLE DB. Für Microsoft SQL Server, Version 6.5 oder früher, müssen Sie den OLE DB-Provider für SQL Server mit dem .NET Framework-Datenprovider für OLE DB verwenden. |
.NET Framework-Datenprovider für OLE DB | Empfohlen für Anwendungen mittlerer Ebene, die Microsoft SQL Server 6.5 oder früher verwenden, oder für einen beliebigen OLE DB-Provider, der die in Vom .NET Framework-Datenprovider für OLE DB verwendete OLE DB-Schnittstellen aufgeführten OLE DB-Schnittstellen unterstützt. (OLE DB 2.5-Schnittstellen sind nicht erforderlich.)
Für Microsoft SQL Server, Version 7.0 oder höher, wird der .NET Framework-Datenprovider für SQL Server empfohlen. Empfohlen für Anwendungen mit einer Ebene, die Microsoft Access-Datenbanken verwenden. Die Verwendung einer Microsoft Access-Datenbank für eine Anwendung mittlerer Ebene wird nicht empfohlen. |
.NET Framework-Datenprovider für ODBC | Empfohlen für Anwendungen mittlerer Ebene, die ODBC-Datenquellen verwenden.
Empfohlen für Anwendungen mit einer Ebene, die ODBC-Datenquellen verwenden. Hinweis Der .NET Framework-Datenprovider für ODBC ist in .NET Framework, Version 1.0, nicht enthalten. Wenn Sie den .NET Framework-Datenprovider für ODBC benötigen und .NET Framework, Version 1.0, verwenden, können Sie den .NET Framework-Datenprovider für ODBC unter https://msdn.microsoft.com/downloads downloaden. Der Namespace für den gedownloadeten .NET Framework-Datenprovider für ODBC lautet Microsoft.Data.Odbc. |
.NET Framework-Datenprovider für Oracle | Empfohlen für Anwendungen mittlerer Ebene, die Oracle-Datenquellen verwenden.
Empfohlen für Anwendungen mit einer Ebene, die Oracle-Datenquellen verwenden. Unterstützt Oracle-Clientsoftware, Version 8.1.7 und höher. Die Klassen des .NET Framework-Datenproviders für Oracle befinden sich im System.Data.OracleClient-Namespace und sind in der System.Data.OracleClient.dll-Assembly enthalten. Beim Kompilieren einer Anwendung, die den Datenprovider verwendet, müssen Sie sowohl auf System.Data.dll als auch auf System.Data.OracleClient.dll verweisen. Hinweis Der .NET Framework-Datenprovider für Oracle ist in .NET Framework, Version 1.0, nicht enthalten. Wenn Sie den .NET Framework-Datenprovider für Oracle benötigen und .NET Framework, Version 1.0, verwenden, können Sie den .NET Framework-Datenprovider für Oracle unter https://msdn.microsoft.com/downloads downloaden. |
Siehe auch
Übersicht über ADO.NET | ADO.NET-Architektur | Datenzugriff mit .NET Framework-Datenprovidern