23.7 Verbindungen mit dem OleDb-Datenprovider
Im Gegensatz zum SqlClient-Datenprovider, der nur den Zugriff auf SQL Server ab Version 7.0 ermöglicht, ist der OleDb-Datenprovider sehr flexibel einsetzbar. Er unterstützt nicht nur SQL Server, sondern auch alle OLE DB-Datenbanken, beispielsweise Oracle und Access.
Der SqlClient-Datenprovider und der OleDb-Provider unterscheiden sich nur wenig. Sie sollten aber daran denken, vorher den richtigen Namensraum einzubinden:
Imports System.Data.OleDb
Zum Aufbau einer Verbindung benötigt auch der OleDb-Provider ein Connection-Objekt. Der Name der Klasse, OleDbConnection, lehnt sich an den ausgewählten Provider an. Die Verbindungszeichenfolge wird ebenfalls entweder über den parametrisierten Konstruktor oder über die Eigenschaft ConnectionString bereitgestellt. Die Attribute der Verbindungszeichenfolge gleichen denen des SqlClient-Datenproviders, werden jedoch noch um das Attribut Provider ergänzt, mit dem die Datenquelle genauer zu spezifizieren ist. In Tabelle 23.6 sind die wichtigsten Attributwerte aufgeführt.
Wert | Beschreibung |
SQLOLEDB |
SQL Server-Datenprovider |
Microsoft.Jet.OLEDB.4.0 |
Datenprovider der Jet-Datenbanken (MS-Access) |
MSDAORA |
OleDb-Datenprovider für Oracle |
In der Tabelle ist ein Wert für den Zugriff auf ODBC-Datenquellen nicht angegeben, denn für diese sollten die Klassen des Namensraums System.Data.Odbc benutzt werden.
23.7.1 Verbindungsaufbau zu einer SQL Server-Datenbank
Das folgende Codefragment zeigt, wie eine Verbindung zur Beispieldatenbank Northwind einer SQL Server-Instanz hergestellt wird, die sich auf dem Rechner wsak befindet. Als OleDb-Provider dient der Providername SQLOLEDB. Der Authentifizierungsmodus ist bei diesem Codefragment die SQL Server-Authentifizierung.
Dim strCon As String = "Provider=SQLOLEDB;Data Source=wsak;" & _ "Initial Catalog=Northwind;" & _ "User ID=testuser;Password=2zz6sl3" Dim con As DbConnection = New OleDbConnection(strCon) con.Open() ' mit der Datenbank arbeiten con.Close()
23.7.2 Verbindungsaufbau zu einer Access-Datenbank
Um die Verbindung zu einer Access-Datenbank herzustellen, wird der spezifische Datenprovider Microsoft.Jet.OLEDB.4.0 benutzt. Die Ziffern geben die Version der Datenbank an. Die Verbindungszeichenfolge sieht etwas anders aus als die, mit der die Verbindung zum SQL Server hergestellt wird. Hinter dem Attribut Data Source wird nun nicht mehr der Rechnername angegeben, sondern die Pfadangabe zur .mdb-Datei, da es sich um eine dateibasierte Datenbank handelt.
Dim con As DbConnection = New OleDbConnection() con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\FPNWIND.mdb" con.Open()
Um die Verbindung genauer zu beschreiben, steht eine Reihe weiterer Schlüsselwörter zur Verfügung. Sie können diese der Microsoft Data Access SDK entnehmen.
23.7.3 Authentifizierung mit dem OleDb-Provider
Der OleDb-Datenprovider bietet für SQL Server eine weitere interessante Möglichkeit zur Authentifizierung des Anwenders. Dazu muss weder der Benutzername noch das Kennwort in der Verbindungszeichenfolge angegeben werden. Ergänzen Sie diese vielmehr um prompt=prompt, also beispielsweise so:
con.ConnectionString = "Provider=SQLOLEDB;Data Source=wsak;" & _ "Initial Catalog=Northwind;prompt=prompt"
Beim Verbindungsaufbau mit der Methode Open wird daraufhin ein Dialog geöffnet, wie in Abbildung 23.5 gezeigt.
Abbildung 23.5 Anmeldedialog des OleDb-Datenproviders
Beabsichtigt der Anwender, sich über sein aktuelles Windows-Benutzerkonto zu authentifizieren, wird die Auswahlbox Vertrauenswürdige Verbindung verwenden gewählt. Soll die Verbindung über die spezifische SQL Server-Authentifizierung hergestellt werden, muss der Anwender den entsprechenden Benutzernamen und das passende Passwort eingeben.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.