Gewusst wie: Löschen von Datensätzen in einer Datenbank
Verwenden Sie zum Löschen von Datensätzen aus einer Datenbank die TableAdapter.Update-Methode oder die TableAdapter.Delete-Methode. Wenn die Anwendung keine TableAdapters verwendet, können Sie Datensätze auch mit Befehlsobjekten aus der Datenbank löschen (z. B. ExecuteNonQuery).
Die TableAdapter.Update-Methode wird i. d. R. verwendet, wenn die Anwendung Daten mithilfe von Datasets speichert, während die TableAdapter.Delete-Methode normalerweise verwendet wird, wenn die Anwendung Objekte zum Speichern verwendet.
Wenn der TableAdapter nicht über eine Delete-Methode verfügt, 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 Delete-Methode verfügt, 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).
Löschen von Datensätzen mithilfe von TableAdapters
TableAdapters bieten verschiedene Möglichkeiten, Datensätze abhängig von den Anforderungen der Anwendung aus einer Datenbank zu löschen.
Wenn die Anwendung Daten mithilfe von Datasets speichert, können Sie die Datensätze einfach aus der gewünschten DataTable im DataSet löschen und dann die TableAdapter.Update-Methode aufrufen. Die TableAdapter.Update-Methode überträgt alle an der Datentabelle vorgenommenen Änderungen in die Datenbank (z. B. eingefügte, aktualisierte und gelöschte Datensätze).
So löschen Sie Datensätze mithilfe der TableAdapter.Update-Methode aus einer Datenbank
Löschen Sie Datensätze aus der gewünschten DataTable, indem Sie DataRow-Objekte aus der Tabelle löschen. Weitere Informationen finden Sie unter Gewusst wie: Löschen von Zeilen in einer DataTable. Nachdem die Zeilen aus der DataTable gelöscht 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 aus einer DataTable gelöscht und anschließend die TableAdapter.Update-Methode aufgerufen wird, um die Änderung mitzuteilen und die Zeile aus der Datenbank zu löschen. (In diesem Beispiel wird die Tabelle Region der Datenbank Northwind verwendet.)
' Locate the row to delete. Dim oldRegionRow As NorthwindDataSet.RegionRow oldRegionRow = NorthwindDataSet._Region.FindByRegionID(5) ' Delete the row from the dataset oldRegionRow.Delete() ' Delete the row from the database Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
// Locate the row to delete. NorthwindDataSet.RegionRow oldRegionRow; oldRegionRow = northwindDataSet.Region.FindByRegionID(5); // Delete the row from the dataset oldRegionRow.Delete(); // Delete the row from the database this.regionTableAdapter.Update(this.northwindDataSet.Region);
Wenn die Anwendung Daten mithilfe von Objekten in der Anwendung speichert, können Sie mit den DBDirect-Methoden des TableAdapter Daten direkt aus der Datenbank löschen. Beim Aufrufen der Delete-Methode werden Datensätze basierend auf den übergebenen Parameterwerten aus der Datenbank entfernt.
So löschen Sie Datensätze mithilfe der TableAdapter.Delete-Methode aus einer Datenbank
Rufen Sie die Delete-Methode des TableAdapter auf, und übergeben Sie der Delete-Methode die Werte für alle Spalten als Parameter. (In diesem Beispiel wird die Tabelle Region der Datenbank Northwind verwendet.)
Tipp
Wenn Ihnen keine Instanz zur Verfügung steht, instanziieren Sie den TableAdapter, den Sie verwenden möchten.
Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter.Delete(5, "NorthWestern")
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = new NorthwindDataSetTableAdapters.RegionTableAdapter(); regionTableAdapter.Delete(5, "NorthWestern");
Löschen von Datensätzen mithilfe von Befehlsobjekten
Im folgenden Beispiel werden Datensätze mithilfe von Befehlsobjekten direkt aus einer Datenbank gelöscht. Weitere Informationen zum Ausführen von Befehlen und gespeicherten Prozeduren mithilfe von Befehlsobjekten finden Sie unter Abrufen von Daten für die Anwendung.
So löschen Sie Datensätze mithilfe von Befehlsobjekten aus einer Datenbank
Erstellen Sie ein neues Befehlsobjekt, und legen Sie die entsprechenden Eigenschaften Connection, CommandType und CommandText fest. (In diesem Beispiel wird die Tabelle Region der Datenbank Northwind verwendet.)
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 = "DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern'" 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 = "DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern'"; cmd.Connection = sqlConnection1; sqlConnection1.Open(); cmd.ExecuteNonQuery(); sqlConnection1.Close();
Sicherheit
Sie müssen über Zugriff auf die Datenbank verfügen, mit der Sie eine Verbindung herstellen möchten. Außerdem müssen Sie über die Berechtigung zum Löschen von Datensätzen aus der gewünschten Tabelle verfügen.
Siehe auch
Aufgaben
Gewusst wie: Einfügen neuer Datensätze in eine Datenbank
Gewusst wie: Aktualisieren von Datensätzen in einer Datenbank
Gewusst wie: Speichern von Daten aus einem Objekt in einer Datenbank
Konzepte
Binden von Steuerelementen an Daten in Visual Studio
Weitere Ressourcen
Übersicht über Datenanwendungen in Visual Studio
Herstellen von Datenverbindungen in Visual Studio
Vorbereiten der Anwendung auf den Empfang von Daten
Abrufen von Daten für die Anwendung