Übersicht über das Verbinden mit Daten in Visual Studio
Aktualisiert: November 2007
Visual Studio stellt Tools für die Herstellung einer Verbindung zwischen der Anwendung und Daten aus mehreren verschiedenen Quellen zur Verfügung, z. B. Datenbanken, Webdiensten und Objekten. Wenn Sie in Visual Studio mit Datenentwurfstools arbeiten, ist es oftmals nicht erforderlich, ein Verbindungsobjekt für das Formular oder die Komponente explizit zu erstellen. Das Verbindungsobjekt wird i. d. R. durch die Ausführung eines Daten-Assistenten oder durch Ziehen von Datenobjekten auf das Formular erstellt. Wenn Sie die Anwendung mit Daten in einer Datenbank, in einem Webdienst oder in einem Objekt verbinden möchten, führen Sie den Assistent zum Konfigurieren von Datenquellen aus. Wählen Sie dazu im Datenquellenfenster die Option Neue Datenquelle hinzufügen aus.
Das folgenden Diagramm zeigt den Standardablauf, wenn zum Herstellen einer Verbindung mit Daten eine TableAdapter-Abfrage ausgeführt wird, mit der Daten abgerufen werden und auf einem Formular in einer Windows-Anwendung dargestellt werden.
In bestimmten Situationen ist es unter Umständen praktisch, ein Verbindungsobjekt ohne die Unterstützung durch Datenentwurfstools zu erstellen. Informationen zum programmgesteuerten Erstellen von Verbindungen finden Sie unter Herstellen einer Verbindung mit einer Datenquelle (ADO.NET).
Hinweis: |
---|
Informationen über das Verbinden von Webanwendungen mit Daten finden Sie unter Zugreifen auf Daten mit ASP.NET. |
Erstellen von Verbindungen
In Visual Studio werden Verbindungen mit dem Dialogfeld "Verbindung hinzufügen/ändern" (Allgemein) konfiguriert. Das Dialogfeld Verbindung hinzufügen wird angezeigt, wenn Sie Verbindungen in einem der Daten-Assistenten bzw. im Server-Explorer/Datenbank-Explorer bearbeiten oder erstellen oder wenn Sie Verbindungseigenschaften im Eigenschaftenfenster bearbeiten.
Datenverbindungen werden automatisch konfiguriert, wenn Sie eine der folgenden Aktionen ausführen:
Aktion |
Beschreibung |
---|---|
Führen Sie den Assistent zum Konfigurieren von Datenquellen aus. |
Verbindungen werden konfiguriert, wenn der Datenbankpfad im Assistenten zum Konfigurieren von Datenquellen ausgewählt wird. Weitere Informationen finden Sie unter Gewusst wie: Herstellen einer Verbindung zu Daten in einer Datenbank. |
Führen Sie den TableAdapter-Konfigurations-Assistent aus. |
Verbindungen werden innerhalb des TableAdapter-Konfigurations-Assistenten erstellt. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von TableAdapters. |
Führen Sie den Konfigurations-Assistent für TableAdapter-Abfragen aus. |
Verbindungen werden innerhalb des Konfigurations-Assistenten für TableAdapter-Abfragen erstellt. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von TableAdapter-Abfragen. |
Ziehen Sie Elemente aus dem Datenquellenfenster auf ein Formular oder den Komponenten-Designer. |
Verbindungsobjekte werden erstellt, wenn Sie Elemente aus dem Datenquellenfenster auf den Windows Forms-Designer oder auf den Komponenten-Designer ziehen. Weitere Informationen finden Sie unter Anzeigen von Daten in Formularen in Windows-Anwendungen. |
Fügen Sie dem Server-Explorer/Datenbank-Explorer neue Datenverbindungen hinzu. |
Datenverbindungen im Server-Explorer/Datenbank-Explorer werden in den Daten-Assistenten in der Liste verfügbarer Verbindungen angezeigt. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen neuer Datenverbindungen in Server-Explorer/Datenbank-Explorer. |
Verbindungszeichenfolgen
Alle Verbindungsobjekte machen ungefähr dieselben Member verfügbar. Welche Member in einem bestimmten OleDbConnection-Objekt zur Verfügung stehen, hängt allerdings von der Datenquelle ab, mit der das Objekt verbunden ist. Nicht alle Member der OleDbConnection-Klasse werden von allen Datenquellen unterstützt.
Die einem Verbindungsobjekt zugeordnete primäre Eigenschaft ist die ConnectionString-Eigenschaft. Diese Eigenschaft besteht aus einer Zeichenfolge mit Attribut/Wert-Paaren, die zur Anmeldung bei einer Datenbank erforderliche Informationen enthalten und auf eine bestimmte Datenbank zeigen. Eine typische ConnectionString-Eigenschaft könnte wie folgt aussehen:
Provider=SQLOLEDB.1;Data Source=MySQLServer;Initial Catalog=NORTHWIND;Integrated Security=SSPI
Diese spezielle Verbindungszeichenfolge gibt an, dass die Verbindung die in Windows integrierte Sicherheit verwenden soll. Eine Verbindungszeichenfolge kann stattdessen eine Benutzer-ID und ein Kennwort enthalten. Dies ist jedoch nicht empfehlenswert, weil diese Attribute anschließend in die Anwendung kompiliert werden und daher mögliche Sicherheitsrisiken darstellen.
Sicherheitshinweis: |
---|
Das Speichern von Informationen über Verbindungszeichenfolgen (z. B. das Kennwort) kann die Sicherheit einer Anwendung beeinträchtigen. Sicherer lässt sich der Zugriff auf eine Datenbank unter Verwendung der integrierten Sicherheit von Windows steuern. Weitere Informationen finden Sie unter Schützen von Verbindungsinformationen (ADO.NET). |
Die von OLE DB am häufigsten verwendeten Attribut/Wert-Paare werden auch separat durch eine einzelne Eigenschaft dargestellt, z. B. DataSource und Database. Bei der Arbeit mit einem Verbindungsobjekt können Sie die ConnectionString-Eigenschaft als einzelne Zeichenfolge festlegen. Sie können aber auch einzelne Verbindungseigenschaften angeben. (Wenn die Datenquelle Werte für Verbindungszeichenfolgen benötigt, die nicht von einzelnen Eigenschaften dargestellt werden, müssen Sie die ConnectionString-Eigenschaft festlegen.)
Speichern und Abrufen von Verbindungszeichenfolgen
Verbindungszeichenfolgen können innerhalb der kompilierten Anwendung oder in der Anwendungskonfigurationsdatei gespeichert werden. Weitere Informationen finden Sie unter Gewusst wie: Speichern einer Verbindungszeichenfolge.
Öffnen und Schließen von Verbindungen
Die zwei primären Methoden für Verbindungen sind Open und Close. Die Open-Methode verwendet zur Kontaktaufnahme mit der Datenquelle und zum Herstellen einer offenen Verbindung die ConnectionString-Eigenschaft. Die Close-Methode beendet die Verbindung. Das Schließen von Verbindungen ist wichtig, weil die meisten Datenquellen nur eine begrenzte Anzahl offener Verbindungen unterstützen und offene Verbindungen wertvolle Systemressourcen in Anspruch nehmen.
Wenn Sie TableAdapters, DataAdapter oder DataCommands verwenden, müssen Sie eine Verbindung nicht explizit öffnen und schließen. Wenn Sie eine Methode dieser Objekte aufrufen (z. B. die Fill-Methode oder die Update-Methode eines Adapters), prüft die Methode, ob die Verbindung bereits geöffnet ist. Ist dies nicht der Fall, öffnet der Adapter die Verbindung, führt seine Logik durch und schließt die Verbindung wieder.
Methoden wie Fill werden öffnen und schließen die Verbindung nur dann automatisch, wenn sie nicht bereits geöffnet ist. Geöffnete Verbindungen werden von diesen Methoden zwar verwendet, aber nicht geschlossen. Damit haben Sie die Möglichkeit, Datenbefehle selbst zu öffnen und zu schließen. Sie könnten davon Gebrauch machen, wenn eine Verbindung von mehreren Adaptern gemeinsam genutzt wird. In diesem Fall ist es ineffizient, wenn jeder Adapter die Verbindung öffnet und schließt, wenn Sie die Fill-Methode des betreffenden Adapters aufrufen. Stattdessen können Sie die Verbindung öffnen, die Fill-Methode der einzelnen Adapter aufrufen und die Verbindung nach Abschluss der Arbeit wieder schließen.
Pooling von Verbindungen
In Anwendungen führen verschiedene Benutzer häufig dieselbe Art von Datenbankzugriff aus. Zum Beispiel könnten viele Benutzer dieselbe Datenbank abfragen, um die gleichen Daten abzurufen. In einem solchen Fall kann die Leistung der Anwendung dadurch gesteigert werden, dass sie Verbindungen zur Datenquelle gemeinsam nutzt (sogenanntes Pooling). Der Aufwand, der daraus entsteht, dass jeder Benutzer eine separate Verbindung öffnet und schließt, kann die Anwendungsleistung sonst beeinträchtigen.
Wenn Sie die Klassen OleDbConnection, OdbcConnection oder OracleConnection verwenden, wird das Verbindungspooling automatisch vom Anbieter verwaltet, sodass Sie sie nicht selbst verwalten müssen.
Bei Verwendung der SqlConnection-Klasse wird das Verbindungspooling implizit verwaltet. Sie bietet Ihnen jedoch auch die Möglichkeit, das Pooling selbst zu verwalten. Weitere Informationen finden Sie unter SQL Server-Verbindungspooling (ADO.NET).
Transaktionen
Verbindungsobjekte unterstützen Transaktionen mit einer BeginTransaction-Methode, die ein Transaktionsobjekt erstellt (z. B. ein SqlTransaction-Objekt). Das Transaktionsobjekt unterstützt wiederum Methoden, mit denen Sie die Transaktionen bestätigen oder zurücksetzen können.
Transaktionen werden in Code verwaltet. Weitere Informationen finden Sie unter Transaktionen und Parallelität (ADO.NET).
.NET Framework, Version 2.0, enthält ein neues Transaktionsframework, auf das über den System.Transactions-Namespace zugegriffen werden kann. Dieses Framework macht Transaktionen auf vollständig in .NET Framework und ADO.NET integrierte Art und Weise verfügbar. Weitere Informationen finden Sie unter Integration von 'System.Transactions' in SQL Server (ADO.NET).
Verbindungsinformationen und Sicherheit
Da das Öffnen einer Verbindung mit dem Zugang zu einer wichtigen Ressource, nämlich einer Datenbank, verbunden ist, gibt es oft Sicherheitsprobleme bei der Konfiguration und Arbeit mit einer Verbindung.
Wie Sie die Anwendung und ihren Zugriff auf die Datenquellen sicher gestalten, hängt von der Architektur Ihres Systems ab. Bei einer webbasierten Anwendung z. B. erhalten Benutzer in der Regel anonymen Zugriff auf Internetinformationsdienste (Internet Information Services, IIS) und geben daher keine sicheren Anmeldeinformationen ein. In diesem Fall verwaltet die Anwendung ihre eigenen Anmeldeinformationen und verwendet diese (anstelle spezifischer Benutzerinformationen), um die Verbindung zu öffnen und auf die Datenbank zuzugreifen.
Sicherheitshinweis: |
---|
Das Speichern von Informationen über Verbindungszeichenfolgen (z. B. das Kennwort) kann die Sicherheit einer Anwendung beeinträchtigen. Sicherer lässt sich der Zugriff auf eine Datenbank unter Verwendung der integrierten Sicherheit von Windows steuern. Weitere Informationen finden Sie unter Schützen von Verbindungsinformationen (ADO.NET). |
In Intranetanwendungen oder Anwendungen mit mehreren Ebenen können Sie die integrierte Sicherheitsoption nutzen, die von Windows, IIS und SQL Server bereitgestellt wird. Bei diesem Modell werden die Authentifizierungsinformationen eines Benutzers für das lokale Netz auch für den Zugriff auf Datenbankressourcen verwendet. In der Verbindungszeichenfolge wird damit kein expliziter Benutzername oder kein explizites Kennwort benutzt. (In der Regel werden Berechtigungen auf dem Datenbankserver mithilfe von Gruppen eingerichtet, sodass Sie keine individuellen Berechtigungen für die einzelnen Benutzer erteilen müssen, die möglicherweise auf die Datenbank zugreifen.) Bei diesem Modell müssen Sie überhaupt keine Anmeldeinformationen für die Verbindung speichern, und es sind keine zusätzlichen Schritte erforderlich, um die Informationen über die Verbindungszeichenfolge zu schützen.
Weitere Informationen zur Sicherheit finden Sie auf den folgenden Seiten:
Entwurfszeitverbindungen im Server-Explorer/Datenbank-Explorer
Der Server-Explorer/Datenbank-Explorer bietet die Möglichkeit, Entwurfszeitverbindungen zu Datenquellen zu erstellen. Damit können Sie verfügbare Datenquellen durchsuchen, Informationen über die Tabellen, die Spalten und die anderen Elemente anzeigen, die darin enthalten sind, sowie Datenbankelemente bearbeiten und erstellen.
Die Anwendung verwendet die im Server-Explorer/Datenbank-Explorer verfügbaren Verbindungen nicht direkt. Diese Verbindungen werden von Visual Studio dazu verwendet, um zur Entwurfszeit mit der Datenbank zu arbeiten. Weitere Informationen finden Sie unter Visual Database Tools.
Zur Entwurfszeit können Sie z. B. mit dem Server-Explorer/Datenbank-Explorer eine Verbindung mit einer Datenbank erstellen. Später, wenn Sie ein Formular entwerfen, können Sie die Datenbank durchsuchen, Spalten in einer Tabelle markieren und sie auf den DataSet-Designer ziehen. Dabei wird im Dataset ein TableAdapter erstellt. Außerdem wird ein neues Verbindungsobjekt erstellt (das zu dem neu erstellten TableAdapter gehört).
Informationen über Entwurfszeitverbindungen werden unabhängig von einem bestimmten Projekt oder einer bestimmten Lösung auf Ihrem lokalen Computer gespeichert. Sobald Sie daher bei der Arbeit in einer Anwendung eine Entwurfszeitverbindung erstellt haben, wird diese jedes Mal, wenn Sie in Visual Studio arbeiten, im Server-Explorer/Datenbank-Explorer angezeigt (solange der Server verfügbar ist, auf den die Verbindung zeigt). Weitere Informationen zum Verwenden des Server-Explorers/Datenbank-Explorers und zum Erstellen von Entwurfszeitverbindungen finden Sie unter Gewusst wie: Hinzufügen neuer Datenverbindungen in Server-Explorer/Datenbank-Explorer.
Siehe auch
Aufgaben
Gewusst wie: Herstellen einer Verbindung zu Daten in einer Datenbank
Exemplarische Vorgehensweise: Herstellen einer Verbindung zu Daten in einer Datenbank
Weitere Ressourcen
Herstellen von Datenverbindungen in Visual Studio
Zugreifen auf Daten mit ASP.NET
Vorbereiten der Anwendung auf den Empfang von Daten
Abrufen von Daten für die Anwendung
Anzeigen von Daten in Formularen in Windows-Anwendungen