Freigeben über


Erstellen eines .NET Framework Windows Forms-Benutzersteuerelements, das komplexe Datenbindung mit ADO.NET

Hinweis

Datasets und verwandte Klassen sind ältere .NET-Technologien aus den frühen 2000er Jahren, die es Anwendungen ermöglichen, mit Daten im Arbeitsspeicher zu arbeiten, während die Anwendungen von der Datenbank getrennt sind. Die Technologien sind besonders nützlich für Anwendungen, die es Benutzern ermöglichen, Daten zu ändern und die Änderungen wieder in der Datenbank zu speichern. Obwohl sich Datasets als sehr erfolgreiche Technologie erwiesen haben, empfehlen wir, dass neue .NET-Anwendungen Entity Framework Core verwenden. Entity Framework bietet eine natürlichere Möglichkeit, mit tabellarischen Daten als Objektmodelle zu arbeiten, und verfügt über eine einfachere Programmierschnittstelle.

Beim Anzeigen von Daten in Formularen in Windows-Anwendungen können Sie vorhandene Steuerelemente aus der Toolbox auswählen. Sie können auch benutzerdefinierte Steuerelemente erstellen, wenn Ihre Anwendung Funktionen erfordert, die in den Standardsteuerelementen nicht verfügbar sind. Diese exemplarische Vorgehensweise erläutert, wie Sie ein Steuerelement erstellen, das ComplexBindingPropertiesAttribute implementiert. Steuerelemente, die ComplexBindingPropertiesAttribute implementieren, enthalten eine Eigenschaft DataSource und DataMember, die an Daten gebunden werden kann. Solche Steuerelemente sind vergleichbar mit DataGridView oder ListBox.

Weitere Informationen zum Erstellen von Steuerelementen finden Sie unter Entwickeln von Windows Forms-Steuerelementen zur Entwurfszeit.

Beim Erstellen von Steuerelementen, die in Datenbindungsszenarios verwendet werden sollen, müssen Sie eines der folgenden Datenbindungsattribute implementieren:

Verwendung von Datenbindungsattributen
Implementieren Sie DefaultBindingPropertyAttribute für einfache Steuerelemente, die eine einzige Spalte (oder Eigenschaft) von Daten anzeigen, wie das TextBox-Steuerelement. Weitere Informationen finden Sie unter Erstellen eines Windows Forms-Benutzersteuerelements, das die einfache Datenbindung unterstützt.
Implementieren Sie ComplexBindingPropertiesAttribute für Steuerelemente, die Listen (oder Tabellen) von Daten anzeigen, wie das DataGridView-Steuerelement. (Dieser Prozess wird in dieser exemplarischen Vorgehensweise beschrieben.)
Implementieren Sie die LookupBindingPropertiesAttribute auf Steuerelementen wie einem ComboBox,das Listen (oder Tabellen) von Daten anzeigt, aber auch in einer einzelnen Spalte oder Eigenschaft vorhanden sein muss. Weitere Informationen finden Sie unter Erstellen eines Windows Forms-Benutzersteuerelements, das Nachschlagedatenbindung unterstützt.

In dieser exemplarischen Vorgehensweise wird ein Steuerelement erstellt, das Datenzeilen aus einer Tabelle darstellt. In diesem Beispiel wird die Tabelle Customers der Beispieldatenbank Northwind verwendet. Das komplexe Benutzersteuerelement stellt die Tabelle Customers in einer DataGridView im benutzerdefinierten Steuerelement dar.

Bei dieser exemplarischen Vorgehensweise lernen Sie Folgendes:

  • Ihrem Projekt ein neues Benutzersteuerelement hinzufügen.

  • Entwerfen des Benutzersteuerelements im visuellen Designer.

  • Implementieren des ComplexBindingProperty-Attributs.

  • Erstellen eines Datasets mit dem Assistent zum Konfigurieren von Datenquellen.

  • Legen Sie für die TabelleCustomers im Fenster Datenquellen fest, dass das neue komplexe Steuerelement verwendet wird.

  • Fügen Sie das neue Steuerelement hinzu, indem Sie es vom Fenster Datenquellen auf Form1 ziehen.

Voraussetzungen

Für dieses Tutorial müssen die Workloads .NET-Desktopentwicklung und Datenspeicherung und -verarbeitung in Visual Studio installiert sein. Um diese zu installieren, öffnen Sie Visual Studio-Installer und wählen Ändern (oder Weitere>Ändern) neben der Version von Visual Studio aus, die Sie ändern möchten. Weitere Informationen finden Sie im Artikel Ändern von Visual Studio durch Hinzufügen oder Entfernen von Arbeitsauslastungen und Komponenten.

In dieser exemplarischen Vorgehensweise werden SQL Server Express LocalDB und die Northwind-Beispieldatenbank verwendet.

  1. Wenn Sie nicht über SQL Server Express LocalDB verfügen, installieren Sie diese Komponente entweder über die SQL Server Express-Downloadseite oder über den Visual Studio-Installer. Im Visual Studio-Installer können Sie SQL Server Express LocalDB als Teil der Workload Datenspeicherung und -verarbeitung oder als einzelne Komponente installieren.

  2. Installieren Sie die Northwind-Beispieldatenbank, indem Sie die folgenden Schritte ausführen:

    1. Öffnen Sie in Visual Studio das Fenster SQL Server-Objekt-Explorer. (Der SQL Server-Objekt-Explorer wird als Teil der Workload für die Datenspeicherung und -verarbeitung im Visual Studio-Installer installiert.) Erweitern Sie den Knoten SQL Server. Klicken Sie mit der rechten Maustaste auf Ihre LocalDB-Instanz, und wählen Sie Neue Abfrage aus.

      Ein Abfrage-Editor-Fenster wird geöffnet.

    2. Kopieren Sie das Northwind-Transact-SQL-Skript in die Zwischenablage. Dieses T-SQL-Skript erstellt die Northwind-Datenbank von Grund auf neu und füllt sie mit Daten auf.

    3. Fügen Sie das T-SQL-Skript in den Abfrage-Editor ein, und klicken Sie dann auf die Schaltfläche Ausführen.

      Nach kurzer Zeit wird die Ausführung der Abfrage abgeschlossen, und die Northwind-Datenbank wird erstellt.

Erstellen eines Windows Forms-App-Projekts

Der erste Schritt besteht darin, ein Windows Forms App-Projekt für C# oder Visual Basic zu erstellen. Geben Sie dem Projekt den Namen ComplexControlWalkthrough.

Hinzufügen eines Benutzersteuerelements zum Projekt

Weil diese exemplarische Vorgehensweise ein komplexes, datenbindbares Steuerelement aus einem Benutzersteuerelement erstellt, fügen Sie dem Projekt ein Benutzersteuerelement hinzu:

  1. Klicken Sie im Menü Projekt auf Benutzersteuerelement hinzufügen.

  2. Geben Sie ComplexDataGridView in den Bereich Name ein, und wählen Sie anschließend Hinzufügen aus.

    Das ComplexDataGridView-Steuerelement wird dem Projektmappen-Explorer hinzugefügt und im Designer geöffnet.

Entwerfen des ComplexDataGridView-Steuerelements

Ziehen Sie zum Hinzufügen eines DataGridView zum Steuerelement ein DataGridView aus der Toolbox auf die Designoberfläche des Benutzersteuerelements.

Hinzufügen des erforderlichen Datenbindungsattributs

Für komplexe Steuerelemente, die Datenbindung unterstützen, können Sie das ComplexBindingPropertiesAttribute implementieren:

  1. Wechseln Sie für das ComplexDataGridView-Steuerelement zur Codeansicht. (Wählen Sie im Menü Ansicht die Option Code aus.)

  2. Ersetzen Sie den Code in ComplexDataGridView durch folgenden Code:

    using System.Windows.Forms;
    
    namespace CS
    {
        [System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")]
        public partial class ComplexDataGridView : UserControl
        {
            public object DataSource
            {
                get{ return dataGridView1.DataSource; }
                set{ dataGridView1.DataSource = value; }
            }
    
            public string DataMember
            {
                get{ return dataGridView1.DataMember; }
                set{ dataGridView1.DataMember = value; }
            }
    
            public ComplexDataGridView()
            {
                InitializeComponent();
            }
        }
    }
    
  3. Wählen Sie im Menü Erstellen die Option Projektmappe erstellenaus.

Erstellen einer Datenquelle aus einer Datenbank

Verwenden Sie den Assistenten zum Konfigurieren von Datenquellen, um eine Datenquelle anhand der Customers-Tabelle in der Beispieldatenbank Northwind zu erstellen:

  1. Klicken Sie zum Öffnen des Fensters Datenquellen im Menü Daten auf Datenquellen anzeigen.

  2. Klicken Sie im Datenquellenfenster auf Neue Datenquelle hinzufügen, um den Assistenten zum Konfigurieren von Datenquellen zu starten.

  3. Wählen Sie auf der Seite Datenquellentyp auswählen die Option Datenbank und dann Weiter aus.

  4. Führen Sie auf der Seite Wählen Sie Ihre Datenverbindung einen der folgenden Schritte aus:

    • Wenn in der Dropdownliste eine Datenverbindung zur Beispieldatenbank „Northwind“ verfügbar ist, wählen Sie diese aus.

    • Klicken Sie auf Neue Verbindung, um das Dialogfeld Add/Modify Connection (Verbindung hinzufügen/ändern) zu öffnen.

  5. Falls die Datenbank ein Kennwort erfordert, aktivieren Sie die Option für die Einbeziehung vertraulicher Daten, und wählen Sie dann Weiter aus.

  6. Klicken Sie auf der Seite Save connection string to the Application Configuration file (Verbindungszeichenfolge in der Programmkonfigurationsdatei speichern) auf Weiter.

  7. Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen.

  8. Wählen Sie die Tabelle Customers und dann Fertig stellen aus.

    Das NorthwindDataSet wird dem Projekt hinzugefügt, und die Tabelle Customers wird im Datenquellenfenster angezeigt.

Festlegen, dass die Tabelle Customers das Steuerelement ComplexDataGridView verwendet

Im Datenquellenfenster können Sie vor dem Ziehen von Elementen auf das Formular festlegen, welches Steuerelement erstellt werden soll:

  1. Öffnen Sie Form1 im Designer.

  2. Erweitern Sie im Datenquellenfenster den Knoten Customers.

  3. Klicken Sie auf den Dropdownlistenpfeil für den Knoten Customers, und wählen Sie Anpassen.

  4. Wählen Sie im Dialogfeld Optionen für die Anpassung der Datenbenutzeroberfläche in der Liste Zugeordnete Steuerelemente den Eintrag ComplexDataGridView aus.

  5. Klicken Sie auf den Dropdownlistenpfeil für die Customers-Tabelle, und wählen Sie ComplexDataGridView aus der Steuerungsliste aus.

Hinzufügen von Steuerelementen zu dem Formular

Sie können die datengebundenen Steuerelemente erstellen, indem Sie Elemente aus dem Fenster Datenquellen auf das Formular ziehen. Ziehen Sie den Hauptknoten Customers aus dem Fenster Datenquellen in das Formular. Vergewissern Sie sich, dass das Steuerelement ComplexDataGridView zum Anzeigen der Daten der Tabelle verwendet wird.

Ausführen der Anwendung

Drücken Sie F5, um die Anwendung auszuführen.

Nächste Schritte

Entsprechend den Anforderungen an Ihre Anwendung sollten Sie nach der Erstellung eines Steuerelements, das die Datenbindung unterstützt, noch weitere Schritte ausführen. Zu den typischen nächsten Schritten gehören Folgende: