Freigeben über


.NET Framework-Datenanbieter (ADO.NET)

Aktualisiert: November 2007

Mithilfe eines .NET Framework-Datenanbieters werden Verbindungen mit einer Datenbank hergestellt, Befehle ausgeführt und Ergebnisse abgerufen. Diese Ergebnisse werden entweder direkt verarbeitet, in einem DataSet platziert, um sie dem Benutzer bei Bedarf verfügbar zu machen, mit Daten aus mehreren Quellen kombiniert oder zwischen Ebenen verschoben. .NET Framework-Datenanbieter sind kompakt und erstellen eine minimale Schicht zwischen der Datenquelle und dem Code, wobei sie die Leistung verbessern, ohne dass dies zu Lasten der Funktionalität geht.

Die folgende Tabelle enthält eine Auflistung der Datenanbieter in .NET Framework:

.NET Framework-Datenanbieter

Beschreibung

.NET Framework Datenanbieter für SQL Server

Ermöglicht den Datenzugriff für Microsoft SQL Server 7.0 oder höher. Verwendet den System.Data.SqlClient-Namespace.

.NET Framework Datenanbieter für OLE DB

Für Datenquellen, die mit OLE DB verfügbar gemacht werden. Verwendet den System.Data.OleDb-Namespace.

.NET Framework Datenanbieter für ODBC

Für Datenquellen, die mit ODBC verfügbar gemacht werden. Verwendet den System.Data.Odbc-Namespace.

.NET Framework Datenanbieter für Oracle

Für Oracle-Datenquellen. Der .NET Framework-Datenanbieter für Oracle unterstützt Oracle-Clientsoftware Version 8.1.7 und höher und verwendet den System.Data.OracleClient-Namespace.

EntityClient-Anbieter

Stellt den Datenzugriff für Entity Data Model (EDM)-Anwendungen bereit. Verwendet den System.Data.EntityClient-Namespace.

Hauptobjekte von .NET Framework-Datenanbietern

In der folgenden Tabelle werden die vier Hauptobjekte aufgelistet, aus denen sich ein .NET Framework-Datenanbieter zusammensetzt.

Objekt

Beschreibung

Connection

Stellt eine Verbindung mit einer bestimmten Datenquelle her. Die Basisklasse für alle Connection-Objekte ist die DbConnection-Klasse.

Command

Führt einen Befehl für eine Datenquelle aus. Macht Parameters verfügbar und kann im Rahmen einer Transaction von einer Connection aus ausgeführt werden. Die Basisklasse für alle Command-Objekte ist die DbCommand-Klasse.

DataReader

Liest einen schreibgeschützten Vorwärtsstream von Daten aus einer Datenquelle. Die Basisklasse für alle DataReader-Objekte ist die DbDataReader-Klasse.

DataAdapter

Füllt ein DataSet auf und löst Aktualisierungen mit der Datenquelle auf. Die Basisklasse für alle DataAdapter-Objekte ist die DbDataAdapter-Klasse.

Zusätzlich zu den in der Tabelle oben aufgelisteten Hauptklassen enthält ein .NET Framework-Datenanbieter auch die in der folgenden Tabelle aufgeführten Klassen.

Objekt

Beschreibung

Transaction

Trägt Befehle in Transaktionen an der Datenquelle ein. Die Basisklasse für alle Transaction-Objekte ist die DbTransaction-Klasse. ADO.NET unterstützt auch Transaktionen mit Klassen im 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. Die Basisklasse für alle CommandBuilder-Objekte ist die DbCommandBuilder-Klasse.

ConnectionStringBuilder

Hilfsobjekt, das eine einfache Möglichkeit bietet, den Inhalt von Verbindungszeichenfolgen zu erstellen und zu verwalten, die von den Connection-Objekten verwendet werden. Die Basisklasse für alle ConnectionStringBuilder-Objekte ist die DbConnectionStringBuilder-Klasse.

Parameter

Definiert Eingabe-, Ausgabe- und Rückgabewertparameter für Befehle und gespeicherte Prozeduren. Die Basisklasse für alle Parameter-Objekte ist die DbParameter-Klasse.

Exception

Wird zurückgegeben, wenn in der Datenquelle ein Fehler auftritt. Wenn auf dem Client ein Fehler festgestellt wird, lösen .NET Framework-Datenanbieter eine .NET Framework-Ausnahme aus. Die Basisklasse für alle Exception-Objekte ist die DbException-Klasse.

Error

Macht die Informationen aus einer von einer Datenquelle zurückgegebenen Warnung bzw. einem von einer Datenquelle zurückgegebenen Fehler verfügbar.

ClientPermission

Wird für Codezugriffs-Sicherheitsattribute von .NET Framework-Datenanbietern bereitgestellt. Die Basisklasse für alle ClientPermission-Objekte ist die DBDataPermission-Klasse.

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

Der .NET Framework-Datenanbieter für SQL Server (SqlClient) verwendet für die Kommunikation mit SQL Server ein eigenes Protokoll. Dieses Protokoll ist kompakt und leistungsfähig, da es für den direkten Zugriff auf einen SQL Server optimiert ist, ohne dass dabei eine OLE DB- oder ODBC-Schicht hinzugefügt wird. In der folgenden Abbildung werden der .NET Framework-Datenanbieter für SQL Server und der .NET Framework-Datenanbieter für OLE DB einander gegenübergestellt. Der .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.

Hinweis:

Die Architektur des .NET Framework-Datenanbieters für ODBC ähnelt der des .NET Framework-Datenanbieters für OLE DB. So wird z. B. bei beiden eine ODBC-Dienstkomponente aufgerufen.

Vergleich des dnprdnshort-Datenanbieters für ssNoVersionr mit dem dnprdnshort-Datenanbieter für OLE DB

Datenanbieter

Um den .NET Framework-Datenanbieter für SQL Server verwenden zu können, müssen Sie auf SQL Server 7.0 oder höher zugreifen können. Die Klassen des .NET Framework-Datenanbieters für SQL Server befinden sich im System.Data.Odbc-Namespace. Wenn Sie mit einer früheren SQL Server-Version arbeiten, verwenden Sie den .NET Framework-Datenanbieter für OLE DB mit dem SQL Server-OLE DB-Anbieter System.Data.OleDb.

Der .NET Framework-Datenanbieter für SQL Server unterstützt sowohl lokale als auch verteilte Transaktionen. Bei verteilten Transaktionen trägt sich der .NET Framework-Datenanbieter für SQL Server standardmäßig automatisch in die Transaktion ein und ruft von den Windows-Komponentendiensten oder von System.Transactions Details zu dieser Transaktion ab. Weitere Informationen dazu finden Sie unter Transaktionen und Parallelität (ADO.NET).

Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.SqlClient-Namespace in Ihre Anwendungen einbinden können.

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

.NET Framework-Datenanbieter für OLE DB

Der .NET Framework-Datenanbieter für OLE DB (OleDb) ermöglicht den Datenzugriff mithilfe von systemeigenem OLE DB über COM-Interop. Der .NET Framework-Datenanbieter für OLE DB unterstützt sowohl lokale als auch verteilte Transaktionen. Bei verteilten Transaktionen trägt sich der .NET Framework-Datenanbieter für OLE DB standardmäßig automatisch in die Transaktion ein und ruft von den Windows 2000-Komponentendiensten Details zu dieser Transaktion ab. Weitere Informationen dazu finden Sie unter Transaktionen und Parallelität (ADO.NET).

In der folgenden Tabelle werden die Anbieter aufgeführt, die mit ADO.NET getestet wurden.

Treiber

Anbieter

SQLOLEDB

Microsoft OLE DB-Anbieter für SQL Server

MSDAORA

Microsoft OLE DB-Anbieter für Oracle

Microsoft.Jet.OLEDB.4.0

OLE DB-Anbieter für Microsoft Jet

Hinweis:

Die Verwendung einer Access-Datenbank (Jet-Datenbank) als Datenquelle für Multithread-Anwendungen (z. B. ASP.NET-Anwendungen) wird nicht empfohlen. Wenn Sie Jet als Datenquelle für eine ASP.NET-Anwendung verwenden müssen, müssen Sie sich bewusst sein, dass beim Herstellen von Verbindungen zwischen ASP.NET-Anwendungen und einer Access-Datenbank Verbindungsprobleme auftreten können. Informationen dazu, was Sie tun können, wenn bei der Verwendung von ASP.NET und einer Access-Datenbank (Jet-Datenbank) Verbindungsprobleme auftreten, finden Sie im Microsoft Knowledge Base-Artikel mit der ID 316675, "PRB: Von ASP.NET aus kann keine Verbindung zu einer Access-Datenbank hergestellt werden".

Der .NET Framework-Datenanbieter für OLE DB unterstützt keine OLE DB 2.5-Schnittstellen. OLE DB-Anbieter, die Unterstützung von OLE DB 2.5-Schnittstellen benötigen, funktionieren in Verbindung mit dem .NET Framework-Datenanbieter für OLE DB nicht ordnungsgemäß. Dies betrifft auch den Microsoft OLE DB-Anbieter für Exchange und den Microsoft OLE DB-Anbieter für Internet Publishing.

Der .NET Framework-Datenanbieter für OLE DB funktioniert nicht in Verbindung mit dem OLE DB-Anbieter für ODBC (MSDASQL). Wenn Sie mit ADO.NET auf eine ODBC-Datenquelle zugreifen möchten, verwenden Sie den .NET Framework-Datenanbieter für ODBC.

Die Klassen des .NET Framework-Datenanbieters für OLE DB befinden sich im System.Data.OleDb-Namespace. Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.OleDb-Namespace in Ihre Anwendungen einbinden können.

Imports System.Data.OleDb
using System.Data.OleDb;
Hinweis:

Der .NET Framework-Datenanbieter für OLE DB erfordert MDAC 2.6 oder höher, wir empfehlen die Verwendung von MDAC 2.8 Service Pack 1 (SP1). MDAC 2.8 SP1 steht auf der Developer Center-Website Data Access and Storage zum Download bereit.

.NET Framework-Datenanbieter für ODBC

Der .NET Framework-Datenanbieter für ODBC (Odbc) verwendet für die Bereitstellung des Datenzugriffs den systemeigenen ODBC-Treiber-Manager. Der ODBC-Datenanbieter unterstützt sowohl lokale als auch verteilte Transaktionen. Bei verteilten Transaktionen trägt sich der ODBC-Datenanbieter standardmäßig automatisch in die Transaktion ein und ruft von den Windows 2000-Komponentendiensten Details zu dieser Transaktion ab. Weitere Informationen dazu finden Sie unter Transaktionen und Parallelität (ADO.NET).

In der folgenden Tabelle werden die ODBC-Treiber aufgeführt, die mit ADO.NET getestet wurden.

Treiber

SQL Server

Microsoft ODBC für Oracle

Microsoft Access Driver (*.mdb)

Die Klassen des .NET Framework-Datenbieters für ODBC befinden sich im System.Data.Odbc-Namespace.

Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.Odbc-Namespace in Ihre Anwendungen einbinden können.

Imports System.Data.Odbc
using System.Data.Odbc;
Hinweis:

Der .NET Framework-Datenanbieter für ODBC erfordert MDAC 2.6 oder höher, wir empfehlen MDAC 2.8 SP1. MDAC 2.8 SP1 steht auf der Developer Center-Website Data Access and Storage zum Download bereit.

.NET Framework-Datenanbieter für Oracle

Der .NET Framework-Datenanbieter für Oracle (OracleClient) ermöglicht den Datenzugriff auf Oracle-Daten mithilfe von Oracle-Clientverbindungssoftware. Der Datenanbieter unterstützt Oracle-Clientsoftware Version 8.1.7 oder höher. Der Datenanbieter unterstützt sowohl lokale als auch verteilte Transaktionen. Weitere Informationen finden Sie unter Transaktionen und Parallelität (ADO.NET).

Für die Herstellung einer Verbindung mit der Oracle-Datenquelle benötigt der .NET Framework-Datenanbieter für Oracle die Oracle-Clientsoftware (Version 8.1.7 oder höher) im System.

Die Klassen des .NET Framework-Datenanbieters 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 Datenanbieter verwendet, müssen Sie auf die Dateien System.Data.dll und System.Data.OracleClient.dll verweisen.

Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.OracleClient-Namespace in Ihre Anwendungen einbinden können.

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

Auswählen eines .NET Framework-Datenanbieters

Abhängig vom Design und der Datenquelle für Ihre Anwendung kann die Auswahl des richtigen .NET Framework-Datenanbieters dazu beitragen, die Leistung, Effizienz und Integrität Ihrer Anwendung zu verbessern. In der folgenden Tabelle werden die Vorteile und Grenzen der einzelnen .NET Framework-Datenanbieter erläutert.

Anbieter

Anmerkungen

.NET Framework Datenanbieter für SQL Server

Empfohlen für Anwendungen in der mittleren Ebene, die Microsoft SQL Server 7.0 oder höher verwenden.

Empfohlen für Anwendungen mit nur einer Ebene, die MSDE (Microsoft Database Engine) oder SQL Server 7.0 oder höher verwenden.

Empfohlen bei Verwendung des OLE DB-Anbieters für SQL Server (SQLOLEDB) mit dem .NET Framework-Datenanbieter für OLE DB.

Bei SQL Server 6.5 und früher müssen Sie den OLE DB-Anbieter für SQL Server mit dem .NET Framework-Datenanbieter für OLE DB verwenden.

.NET Framework Datenanbieter für OLE DB

Empfohlen für Anwendungen in der mittleren Ebene, die SQL Server 6.5 oder früher verwenden.

Bei SQL Server 7.0 oder höher wird der .NET Framework-Datenanbieter für SQL Server empfohlen.

Außerdem empfohlen für Anwendungen mit nur einer Ebene, die Microsoft Access-Datenbanken verwenden. Von der Verwendung einer Access-Datenbank für eine Anwendung der mittleren Ebene wird abgeraten.

.NET Framework Datenanbieter für ODBC

Empfohlen für Anwendungen in der mittleren Ebene und Anwendungen mit nur einer Ebene, die ODBC-Datenquellen verwenden.

.NET Framework -Datenanbieter für Oracle

Empfohlen für Anwendungen in der mittleren Ebene und Anwendungen mit nur einer Ebene, die Oracle-Datenquellen verwenden.

EntityClient-Anbieter

Der EntityClient-Anbieter wird für den Datenzugriff auf der Grundlage eines Entity Data Models (EDM) verwendet. Im Gegensatz zu den anderen .NET Framework-Datenanbietern interagiert er nicht direkt mit einer Datenquelle. Stattdessen verwendet er Entity SQL, um mit dem zugrunde liegenden Datenanbieter zu kommunizieren. Weitere Informationen finden Sie unter EntityClient and Entity SQL.

Siehe auch

Weitere Ressourcen

Übersicht über ADO.NET

Abrufen und Ändern von Daten in ADO.NET