Aktualisieren von Daten mithilfe eines TableAdapter 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.

Nachdem die Daten in Ihrem Dataset geändert und überprüft wurden, können Sie die aktualisierten Daten zurück an eine Datenbank senden, indem Sie die Update-Methode eines TableAdapter aufrufen. Die Update-Methode aktualisiert eine einzelne Datentabelle und führt auf der Grundlage des RowState der einzelnen Datenzeilen in der Tabelle den korrekten Befehl (INSERT, UPDATE oder DELETE) aus. Wenn ein Dataset verwandte Tabellen enthält, generiert Visual Studio eine TableAdapterManager-Klasse, die Sie zum Ausführen der Updates verwenden. Die TableAdapterManager-Klasse stellt sicher, dass Updates basierend auf den in der Datenbank definierten Fremdschlüsseleinschränkungen in der richtigen Reihenfolge vorgenommen werden. Wenn Sie datengebundene Steuerelemente verwenden, erstellt die Datenbindungsarchitektur eine Membervariable der TableAdapterManager-Klasse namens „tableAdapterManager“.

Hinweis

Wenn Sie versuchen, eine Datenquelle mit dem Inhalt eines Datasets zu aktualisieren, können Fehler auftreten. Um Fehler zu vermeiden, empfiehlt es sich, den Code einzufügen, der die Update-Methode des Adapters in einem try/catch-Block aufruft.

Das genaue Verfahren zum Aktualisieren einer Datenquelle kann je nach Unternehmensanforderungen variieren. Die folgenden Schritte sollten jedoch ausgeführt werden:

  1. Rufen Sie die Update-Methode des Adapters in einem try/catch-Block auf.

  2. Lokalisieren der fehlerhaften Datenzeile, falls eine Ausnahme abgefangen wird.

  3. Stimmen Sie das Problem in der Datenzeile ab (möglichst programmgesteuert oder indem die ungültige Zeile dem Benutzer zur Änderung angezeigt wird), und führen Sie dann das Update (HasErrors, GetErrors) erneut durch.

Speichern von Daten in einer Datenbank

Rufen Sie die Update-Methode eines TableAdapter auf. Übergeben Sie den Namen der Datentabelle, die die Werte enthält, die in die Datenbank geschrieben werden sollen.

Aktualisieren einer Datenbank mit einem TableAdapter

  • Schließen Sie dieUpdate-Methode von TableAdapter in einen try/catch-Block ein. Im folgenden Beispiel wird veranschaulicht, wie der Inhalt der Customers-Tabelle in NorthwindDataSet aus einem try/catch-Block aktualisiert wird.

    try
    {
        this.Validate();
        this.customersBindingSource.EndEdit();
        this.customersTableAdapter.Update(this.northwindDataSet.Customers);
        MessageBox.Show("Update successful");
    }
    catch (System.Exception ex)
    {
        MessageBox.Show("Update failed");
    }