.NET Framework-Datenanbieter
Ein .NET Framework wird zum Herstellen einer Verbindung mit einer Datenbank, zum Ausführen von Befehlen und zum Abrufen von Ergebnissen verwendet. 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. .NET Framework Datenanbieter sind einfach, wodurch eine minimale Ebene zwischen Datenquelle und Code erstellt wird, wodurch die Leistung ohne Einbußen bei der Funktionalität erhöht wird.
In der folgenden Tabelle sind die Datenanbieter aufgeführt, die in der Tabelle .NET Framework.
.NET Framework-Datenanbieter | BESCHREIBUNG |
---|---|
.NET Framework-Datenanbieter für SQL Server | Ermöglicht den Datenzugriff für Microsoft SQL Server. 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-Clientsoftwareversion 8.1.7 und höher und verwendet den -System.Data.OracleClientNamespace. |
EntityClient-Anbieter | Stellt Datenzugriff für Entity Data Model (EDM)-Anwendungen bereit. Verwendet den System.Data.EntityClient -Namespace. |
.NET Framework Datenanbieter für SQL Server Compact 4.0. | Bietet Datenzugriff für Microsoft SQL Server Compact 4.0. Verwendet den Namespace System.Data.SqlServerCe . |
Hauptobjekte von .NET Framework-Datenanbietern
In der folgenden Tabelle werden die vier Kernobjekte beschrieben, aus denen ein .NET Framework ist.
Object | 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 Kernklassen, die weiter oben in diesem Dokument in der Tabelle aufgeführt sind, enthält ein .NET Framework-Datenanbieter auch die in der folgenden Tabelle aufgeführten Klassen.
Object | 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. Bei einem Fehler, der auf dem Client auftritt, .NET Framework Datenanbieter eine .NET Framework auslösen. 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 .NET Framework-Codezugriffssicherheitsattribute des Datenanbieters 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 ein eigenes Protokoll für die Kommunikation mit SQL Server. Er ist einfach und gut leistungsoptimiert, da er für den direkten Zugriff auf SQL Server optimiert ist, ohne eine OLE DB- oder Open Database Connectivity-Ebene (ODBC) hinzufügen zu müssen. Die folgende Abbildung vergleicht die .NET Framework Datenanbieter für SQL Server mit der .NET Framework Datenanbieter für OLE DB. Die .NET Framework Datenanbieter für OLE DB kommuniziert mit einer OLE DB-Datenquelle sowohl über die OLE DB Service-Komponente, die Verbindungspooling- und Transaktionsdienste bietet, als auch über den OLE DB-Anbieter für die Datenquelle.
Hinweis
Die .NET Framework Datenanbieter für ODBC verfügt über eine ähnliche Architektur wie .NET Framework Datenanbieter für OLE DB, z. B. ruft sie in eine ODBC-Dienstkomponente auf.
Vergleich des .NET Framework-Datenanbieters für SQL Server und des .NET Framework-Datenanbieters für OLE DB
Die .NET Framework Datenanbieter für SQL Server Klassen befinden sich im -System.Data.SqlClientNamespace.
Die .NET Framework Datenanbieter für SQL Server unterstützt sowohl lokale als auch verteilte Transaktionen. Bei verteilten Transaktionen wird die .NET Framework Datenanbieter für SQL Server standardmäßig automatisch in eine Transaktion ein- und erhält Transaktionsdetails von Windows Komponentendiensten oder System.Transactions. Weitere Informationen finden Sie unter Transaktionen und Parallelität.
Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.SqlClient
-Namespace in Anwendungen einbinden können.
Imports System.Data.SqlClient
using System.Data.SqlClient;
.NET Framework-Datenanbieter für OLE DB
Die .NET Framework Datenanbieter für OLE DB (OleDb) verwendet native OLE DB COM-Interop, um den Datenzugriff zu ermöglichen. Die .NET Framework Datenanbieter für OLE DB unterstützt sowohl lokale als auch verteilte Transaktionen. Bei verteilten Transaktionen wird die .NET Framework Datenanbieter für OLE DB standardmäßig automatisch in eine Transaktion ein- und erhält Transaktionsdetails von Windows Komponentendiensten. Weitere Informationen finden Sie unter Transaktionen und Parallelität.
In der folgenden Tabelle sind die Anbieter aufgeführt, die mit der ADO.NET.
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) als Datenquelle für Multithreadanwendungen, z. B. ASP.NET Anwendungen, wird nicht empfohlen. Wenn Sie Jet als Datenquelle für eine ASP.NET-Anwendung verwenden müssen, stellen Sie sicher, dass ASP.NET Anwendungen, die eine Verbindung mit einer Access-Datenbank herstellen, Verbindungsprobleme auftreten können.
Die .NET Framework Datenanbieter für OLE DB unterstützt OLE DB 2.5-Schnittstellen nicht. OLE DB Anbieter, die Unterstützung für OLE DB 2.5-Schnittstellen benötigen, funktionieren nicht ordnungsgemäß mit der .NET Framework Datenanbieter für OLE DB. Dies betrifft auch den Microsoft OLE DB-Anbieter für Exchange und den Microsoft OLE DB-Anbieter für Internet Publishing.
Die .NET Framework Datenanbieter für OLE DB funktioniert nicht mit dem OLE DB-Anbieter für ODBC (MSDASQL). Verwenden Sie die -ADO.NET für ODBC, um mithilfe von .NET Framework Datenanbieter odbc auf eine ODBC-Datenquelle zu zugreifen.
.NET Framework Datenanbieter für OLE DB Klassen befinden sich im -System.Data.OleDbNamespace. Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.OleDb
-Namespace in Anwendungen einbinden können.
Imports System.Data.OleDb
using System.Data.OleDb;
.NET Framework-Datenanbieter für ODBC
Der .NET Framework Datenanbieter für ODBC (Odbc) verwendet den nativen ODBC Driver Manager (DM), um den Datenzugriff zu ermöglichen. Der ODBC-Datenanbieter unterstützt sowohl lokale als auch verteilte Transaktionen. Bei verteilten Transaktionen trägt sich der ODBC-Datenanbieter standardmäßig automatisch in eine Transaktion ein und ruft Transaktionsdetails von den Windows-Komponentendiensten ab. Weitere Informationen finden Sie unter Transaktionen und Parallelität.
Die folgende Tabelle zeigt die ODBC-Treiber, die mit ADO.NET getestet wurden.
Treiber |
---|
SQL Server |
Microsoft ODBC für Oracle |
Microsoft Access Driver (*.mdb) |
.NET Framework Datenanbieter für ODBC-Klassen befinden sich im System.Data.Odbc -Namespace.
Im folgenden Codebeispiel wird gezeigt, wie Sie den System.Data.Odbc
-Namespace in Anwendungen einbinden können.
Imports System.Data.Odbc
using System.Data.Odbc;
Hinweis
Die .NET Framework Datenanbieter für ODBC erfordert MDAC 2.6 oder eine höhere Version, und MDAC 2.8 SP1 wird empfohlen.
.NET Framework-Datenanbieter für Oracle
Der .NET Framework Datenanbieter für Oracle (OracleClient) ermöglicht den Datenzugriff auf Oracle-Datenquellen über Oracle-Clientkonnektivitätssoftware. 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.
Die .NET Framework Datenanbieter für Oracle erfordert Oracle-Clientsoftware (Version 8.1.7 oder höher) auf dem System, bevor Sie eine Verbindung mit einer Oracle-Datenquelle herstellen können.
.NET Framework Datenanbieter für Oracle-Klassen 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 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 Entwurf und der Datenquelle für Ihre Anwendung kann Ihre Auswahl von .NET Framework Datenanbieter die Leistung, Funktion und Integrität Ihrer Anwendung verbessern. In der folgenden Tabelle werden die Vorteile und Einschränkungen der einzelnen .NET Framework Datenanbieter erläutert.
Anbieter | Notizen |
---|---|
.NET Framework-Datenanbieter für SQL Server | Empfohlen für Anwendungen der mittleren Ebene, die Microsoft SQL Server verwenden. Empfohlen für Anwendungen mit einer Ebene, die Microsoft Datenbank-Engine (MSDE) oder SQL Server verwenden. Empfohlen gegenüber der Verwendung des OLE DB-Anbieters für SQL Server (SQLOLEDB) mit dem .NET Framework Datenanbieter für OLE DB. |
.NET Framework-Datenanbieter für OLE DB | Für SQL Server wird die .NET Framework Datenanbieter für SQL Server anstelle dieses Anbieters empfohlen. 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 basierend auf einem Entity Data Model (EDM) verwendet. Im Gegensatz zu anderen .NET Framework-Datenanbietern interagiert er nicht direkt mit einer Datenquelle. Stattdessen kommuniziert er über Entity SQL mit dem zugrunde liegenden Datenanbieter. Weitere Informationen finden Sie unter EntityClient-Anbieter für das Entity Framework.