Speichern von Daten mit den TableAdapter DBDirect-Methoden in .NET Framework-Anwendungen

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.

Dieses Tutorial enthält detaillierte Anweisungen für das Ausführen von SQL-Anweisungen direkt an einer Datenbank mithilfe von DBDirect-Methoden einer TableAdapter-Instanz. Die DBDirect-Methoden eines TableAdapters bieten ein sehr gutes Maß an Kontrolle über Änderungen an der Datenbank. Sie können damit bestimmte SQL-Anweisungen und gespeicherte Prozeduren ausführen, indem Sie die einzelnen Insert-, Update- und Delete-Methoden je nach Bedarf Ihrer Anwendung aufrufen (im Gegensatz zu der überladenen Update-Methode, die die UPDATE-, INSERT- und DELETE-Anweisungen in einem einzelnen Aufruf ausführt).

In diesem Tutorial werden Sie Folgendes erfahren:

Voraussetzungen

Die Schritte in diesem Tutorial funktionieren mit Windows Forms-Anwendungen von .NET Framework.

In diesem Tutorial 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 einer Windows Forms-Anwendung

Im ersten Schritt wird eine Windows Forms-App (.NET Framework) erstellt. Erstellen Sie ein Projekt mithilfe des Projekttyps Windows Forms-App, indem Sie C# oder Visual Basic verwenden.

Hinweis

Der Code für dieses Tutorial ist in C# und Visual Basic verfügbar. Um die Codesprache auf dieser Seite zwischen C# und Visual Basic zu wechseln, verwenden Sie den Codesprachenumschalter oben rechts auf der Seite.

Erstellen einer Datenquelle aus einer Datenbank

Dieser Schritt verwendet den Assistenten zum Konfigurieren von Datenquellen auf Grundlage der Region-Tabelle in der Beispieldatenbank Northwind. Sie benötigen Zugriff auf die Beispieldatenbank Northwind, um die Verbindung herstellen zu können. Informationen zum Einrichten der Northwind-Beispieldatenbank finden Sie unter Installieren von Beispieldatenbanken.

So erstellen Sie die Datenquelle

  1. Klicken Sie im Menü Daten auf Datenquellen anzeigen.

    Das Fenster Datenquellen wird geöffnet.

  2. Wählen Sie im Datenquellenfenster die Option Neue Datenquelle hinzufügen aus, um den Assistenten zum Konfigurieren von Datenquellen zu starten.

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

  4. Führen Sie auf dem Bildschirm 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.

      Oder

    • 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. Wählen Sie auf der Seite Verbindungszeichenfolge in der Anwendungskonfigurationsdatei speichern die Option Weiter aus.

  7. Erweitern Sie auf dem Bildschirm Datenbankobjekte auswählen den Knoten Tabellen.

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

    Das NorthwindDataSet wird Ihrem Projekt hinzugefügt, und die Region-Tabelle wird im Datenquellenfenster angezeigt.

Hinzufügen von Steuerelementen zum Formular für die Anzeige der Daten

Erstellen Sie die datengebundenen Steuerelemente, indem Sie Elemente aus dem Datenquellenfenster auf das Formular ziehen.

Um datengebundene Steuerelemente im Windows-Formular zu erstellen, ziehen Sie den Hauptknoten Region aus dem Fenster Datenquellen auf das Formular.

Auf dem Formular wird ein DataGridView-Steuerelement und ein Toolstrip (BindingNavigator) für die Navigation in den Datensätzen angezeigt. Ein NorthwindDataSet, RegionTableAdapter, BindingSource und BindingNavigator werden auf der Komponentenleiste angezeigt.

Hinzufügen von Schaltflächen, die die einzelnen TableAdapter DbDirect-Methoden aufruft

  1. Ziehen Sie drei Button-Steuerelemente aus der Toolbox auf Form1 (unter RegionDataGridView).

  2. Legen Sie die folgenden Eigenschaften für Name und Text auf jeder Schaltfläche fest.

    Name Text
    InsertButton Einfügen
    UpdateButton Aktualisieren
    DeleteButton Löschen

Hinzufügen von Code für das Einfügen neuer Datensätze in die Datenbank

  1. Wählen Sie InsertButton aus, um einen Ereignishandler für das Click-Ereignis zu erstellen, und öffnen Sie dann das Formular im Code-Editor.

  2. Ersetzen Sie den Ereignishandler InsertButton_Clickdurch den folgenden Code:

    private void InsertButton_Click(object sender, EventArgs e)
    {
        Int32 newRegionID = 5;
        String newRegionDescription = "NorthEastern";
    
        try
        {
            regionTableAdapter1.Insert(newRegionID, newRegionDescription);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Insert Failed");
        }
        RefreshDataset();
    }
    
    
    private void RefreshDataset()
    {
        this.regionTableAdapter1.Fill(this.northwindDataSet1.Region);
    }
    

    Hinweis

    Je nach Ihrer Visual Studio-Version und den verwendeten Projektvorlagen weisen die Variablennamen wie regionTableAdapter oder regionTableAdapter1, die in diesem Code verwendet werden, möglicherweise eine nachstehende 1 im generierten Code auf. Nehmen Sie eventuelle Korrekturen in Ihrem Code vor, um sicherzustellen, dass überall der richtige Name verwendet wird. Visual Studio zeigt eine rote Wellenlinie an, wenn der Name falsch ist.

Hinzufügen von Code für die Aktualisierung von Datensätzen in der Datenbank

  1. Doppelklicken Sie UpdateButton, sodass ein Ereignishandler für Click-Ereignis erstellt wird, und öffnen Sie das Formular im Code-Editor.

  2. Ersetzen Sie den Ereignishandler UpdateButton_Clickdurch den folgenden Code:

    private void UpdateButton_Click(object sender, EventArgs e)
    {
        Int32 newRegionID = 5;
        
        try
        {
            regionTableAdapter1.Update(newRegionID, "Updated Region Description", 5, "NorthEastern");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Update Failed");
        }
        RefreshDataset();
    }
    

So fügen Sie Code für das Löschen von Datensätzen aus der Datenbank hinzu

  1. Wählen Sie DeleteButton aus, um einen Ereignishandler für das Click-Ereignis zu erstellen, und öffnen Sie dann das Formular im Code-Editor.

  2. Ersetzen Sie den Ereignishandler DeleteButton_Clickdurch den folgenden Code:

    private void DeleteButton_Click(object sender, EventArgs e)
    {
        try
        {
            regionTableAdapter1.Delete(5, "Updated Region Description");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Delete Failed");
        }
        RefreshDataset();
    }
    

Ausführen der Anwendung

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

  • Wählen Sie die Schaltfläche Einfügen aus und stellen Sie sicher, dass der neue Datensatz im Raster angezeigt wird.

  • Wählen Sie die Schaltfläche Aktualisieren aus und stellen Sie sicher, dass der Datensatz im Raster aktualisiert wurde.

  • Wählen Sie die Schaltfläche Löschen aus und stellen Sie sicher, dass der Datensatz aus dem Raster entfernt wurde.

Nächste Schritte

Entsprechend den Anforderungen an Ihre Anwendung können Sie nach der Erstellung eines datengebundenen Formulars noch weitere Schritte ausführen. Einige Verbesserungen, die Sie an diesem Tutorial vornehmen können, sind:

  • Fügen Sie dem Formular Suchfunktionalität hinzu.

  • Hinzufügen weiterer Tabellen zum Dataset durch Auswählen von DataSet mit Assistent konfigurieren aus dem Datenquellenfenster. Sie können Steuerelemente hinzufügen, die zugehörige Daten anzeigen, indem Sie die entsprechenden Knoten auf das Formular ziehen. Weitere Informationen finden Sie unter Beziehungen zwischen Datasets.