Gewusst wie: Aktualisieren von Datensätzen in einer Datenbank
Aktualisiert: November 2007
Mithilfe der TableAdapter.Update-Methode können Sie Datensätze in einer Datenbank aktualisieren (bearbeiten). Die TableAdapter.Update-Methode stellt mehrere Überladungen zur Verfügung, die abhängig von den übergebenen Parametern verschiedene Vorgänge ausführen. Es ist wichtig, dass Sie wissen, zu welchen Ergebnissen das Aufrufen dieser Methodensignaturen führt.
Hinweis: |
---|
Wenn die Anwendung keine TableAdapters verwendet, können Sie Datensätze in der Datenbank mit Befehlsobjekten aktualisieren (z. B. ExecuteNonQuery). Weitere Informationen zum Aktualisieren von Daten mit Befehlsobjekten finden Sie weiter unten im Abschnitt "Aktualisieren von Datensätzen mithilfe von Befehlsobjekten". |
In der folgenden Tabelle wird das Verhalten der verschiedenen TableAdapter.Update-Methoden beschrieben:
Methode |
Beschreibung |
---|---|
TableAdapter.Update(DataTable) |
Versucht, alle an der DataTable vorgenommenen Änderungen in der Datenbank zu speichern. (Dazu zählt das Entfernen von aus der Tabelle gelöschten Zeilen, das Hinzufügen von in die Tabelle eingefügten Zeilen oder das Aktualisieren von geänderten Zeilen in der Tabelle.) |
TableAdapter.Update(DataSet) |
Obwohl ein Dataset als Parameter verwendet wird, versucht der TableAdapter, alle Änderungen an der mit dem TableAdapter verknüpften DataTable in der Datenbank zu speichern. (Dazu zählt das Entfernen von aus der Tabelle gelöschten Zeilen, das Hinzufügen von in die Tabelle eingefügten Zeilen oder das Aktualisieren von geänderten Zeilen in der Tabelle.) |
TableAdapter.Update(DataRow) |
Versucht, die an der angegebenen DataRow vorgenommenen Änderungen in der Datenbank zu speichern. |
TableAdapter.Update(DataRows()) |
Versucht, die an allen Zeilen im Array von DataRows vorgenommenen Änderungen in der Datenbank zu speichern. |
TableAdapter.Update("new column values", "original column values") |
Versucht, Änderungen an einer einzelnen Zeile zu speichern, die durch die ursprünglichen Spaltenwerte identifiziert wird. |
Wenn die Anwendung ausschließlich Datasets zum Speichern von Daten verwendet, wird in der Regel die TableAdapter.Update-Methode verwendet, die ein DataSet, eine DataTable oder DataRow(s) entgegennimmt.
Wenn die Anwendung Objekte zum Speichern von Daten verwendet, wird in der Regel die TableAdapter.Update-Methode verwendet, die Spaltenwerte entgegennimmt.
Wenn der TableAdapter nicht über eine Update-Methode verfügt, die Spaltenwerte entgegennimmt, ist er entweder so konfiguriert, dass er gespeicherte Prozeduren verwendet, oder seine GenerateDBDirectMethods-Eigenschaft ist auf false festgelegt. Versuchen Sie, aus dem DataSet-Designer heraus die GenerateDBDirectMethods-Eigenschaft des TableAdapter auf true festzulegen, und speichern Sie das Dataset, um den TableAdapter neu zu generieren. Wenn der TableAdapter dann immer noch nicht über eine Update-Methode verfügt, die Spaltenwerte verwendet, stellt die Tabelle wahrscheinlich keine ausreichenden Schemainformationen zum Unterscheiden zwischen einzelnen Zeilen zur Verfügung (z. B. ist kein Primärschlüssel in der Tabelle festgelegt).
Aktualisieren vorhandener Datensätze mithilfe von TableAdapters
TableAdapters bieten verschiedene Möglichkeiten, Datensätze in einer Datenbank abhängig von den Anforderungen der Anwendung zu aktualisieren.
Wenn die Anwendung Daten mithilfe von Datasets speichert, können Sie die Datensätze einfach in der gewünschten DataTable aktualisieren und anschließend die TableAdapter.Update-Methode aufrufen und das DataSet, die DataTable, die DataRow oder ein Array von DataRows übergeben. In der oben gezeigten Tabelle werden die verschiedenen Update-Methoden beschrieben.
So aktualisieren Sie Datensätze in einer Datenbank mithilfe der TableAdapter.Update-Methode, die DataSet, DataTable, DataRow oder DataRows() verwendet
Bearbeiten Sie Datensätze in der gewünschten DataTable, indem Sie die DataRow direkt in der DataTable bearbeiten. Weitere Informationen finden Sie unter Gewusst wie: Bearbeiten von Zeilen in einer DataTable.
Nachdem die Zeilen in der DataTable bearbeitet wurden, rufen Sie die TableAdapter.Update-Methode auf. Sie können die zu aktualisierende Datenmenge steuern, indem Sie ein DataSet, eine DataTable, ein Array von DataRows oder eine einzelne DataRow übergeben.
Der folgende Code veranschaulicht, wie ein Datensatz in einer DataTable bearbeitet und anschließend die TableAdapter.Update-Methode aufgerufen wird, um die Änderungen in der Datenbank zu speichern. (In diesem Beispiel wird die Tabelle Region der Datenbank Northwind verwendet.)
' Locate the row you want to update. Dim regionRow As NorthwindDataSet.RegionRow regionRow = NorthwindDataSet._Region.FindByRegionID(1) ' Assign the new value to the desired column. regionRow.RegionDescription = "East" ' Save the updated row to the database Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
// Locate the row you want to update. NorthwindDataSet.RegionRow regionRow; regionRow = northwindDataSet.Region.FindByRegionID(1); // Assign the new value to the desired column. regionRow.RegionDescription = "East"; // Save the updated row to the database. this.regionTableAdapter.Update(this.northwindDataSet.Region);
Wenn die Anwendung mithilfe von Objekten Daten in der Anwendung speichert, können Sie mit den DBDirect-Methoden des TableAdapter Daten direkt aus den Objekten an die Datenbank senden. Mithilfe dieser Methoden können Sie einzelne Werte für jede Spalte als Methodenparameter übergeben. Durch das Aufrufen dieser Methode wird ein vorhandener Datensatz in der Datenbank mit den an die Methode übergebenen Spaltenwerten aktualisiert.
In der folgenden Prozedur wird als Beispiel die Tabelle Region der Datenbank Northwind verwendet.
So aktualisieren Sie Datensätze in einer Datenbank mithilfe der TableAdapter.Update-Methode, die Spaltenwerte verwendet
Rufen Sie die Update-Methode des TableAdapter auf, um die neuen und ursprünglichen Werte für jede Spalte als Parameter zu übergeben.
Hinweis: Wenn Ihnen keine Instanz zur Verfügung steht, instanziieren Sie den TableAdapter, den Sie verwenden möchten.
Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter.Update(1, "East", 1, "Eastern")
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = new NorthwindDataSetTableAdapters.RegionTableAdapter(); regionTableAdapter.Update(1, "East", 1, "Eastern");
Aktualisieren von Datensätzen mithilfe von Befehlsobjekten
Im folgenden Beispiel werden vorhandene Datensätze mithilfe von Befehlsobjekten direkt in einer Datenbank aktualisiert. Weitere Informationen zum Verwenden von Befehlsobjekten, um Befehle und gespeicherte Prozeduren auszuführen, finden Sie unter Abrufen von Daten für die Anwendung.
In der folgenden Prozedur wird als Beispiel die Tabelle Region der Datenbank Northwind verwendet.
So aktualisieren Sie vorhandene Datensätze in einer Datenbank mithilfe von Befehlsobjekten
Erstellen Sie ein neues Befehlsobjekt, legen Sie die Eigenschaften Connection, CommandType und CommandText fest, stellen Sie eine Verbindung her, und führen Sie den Befehl aus.
Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING") Dim cmd As New System.Data.SqlClient.SqlCommand cmd.CommandType = System.Data.CommandType.Text cmd.CommandText = "UPDATE Region SET RegionID = 1, RegionDescription = 'East' WHERE RegionID = 1" cmd.Connection = sqlConnection1 sqlConnection1.Open() cmd.ExecuteNonQuery() sqlConnection1.Close()
System.Data.SqlClient.SqlConnection sqlConnection1 = new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING"); System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = "UPDATE Region SET RegionID = 1, RegionDescription = 'East' WHERE RegionID = 1"; cmd.Connection = sqlConnection1; sqlConnection1.Open(); cmd.ExecuteNonQuery(); sqlConnection1.Close();
Sicherheit
Sie müssen über den Zugriff auf die Datenbank verfügen, zu der Sie eine Verbindung herstellen möchten. Außerdem müssen Sie über die Berechtigung zum Aktualisieren von Datensätzen in der gewünschten Tabelle verfügen.
Siehe auch
Aufgaben
Gewusst wie: Löschen von Datensätzen in einer Datenbank
Gewusst wie: Einfügen neuer Datensätze in eine Datenbank
Gewusst wie: Speichern von Daten aus einem Objekt in einer Datenbank
Konzepte
Weitere Ressourcen
Erste Schritte mit dem Datenzugriff
Herstellen von Datenverbindungen in Visual Studio
Vorbereiten der Anwendung auf den Empfang von Daten
Abrufen von Daten für die Anwendung
Anzeigen von Daten in Formularen in Windows-Anwendungen