Bearbeiten von 'DataViews' (ADO.NET)
Aktualisiert: November 2007
Mit DataView können Datenzeilen in der zugrunde liegenden Tabelle hinzugefügt, gelöscht oder bearbeitet werden. Die Möglichkeit, mit DataView Datenzeilen in der zugrunde liegenden Tabelle zu ändern, wird durch Festlegen einer der drei booleschen Eigenschaften der DataView gesteuert. Bei diesen Eigenschaften handelt es sich um AllowNew, AllowEdit und AllowDelete. Sie sind in der Standardeinstellung auf true festgelegt.
Wenn AllowNew auf true festgelegt ist, kann die AddNew-Methode der DataView zum Erstellen einer neuen DataRowView verwendet werden. Beachten Sie, dass die neue Zeile der zugrunde liegenden DataTable erst hinzugefügt wird, wenn die EndEdit-Methode der DataRowView aufgerufen wird. Wenn die CancelEdit-Methode der DataRowView aufgerufen wird, wird die neue Zeile verworfen. Beachten Sie auch, dass Sie jeweils nur eine DataRowView bearbeiten können. Wenn Sie die AddNew-Methode oder die BeginEdit-Methode der DataRowView aufrufen, während eine ausstehende Zeile vorhanden ist, wird EndEdit implizit für die ausstehende Zeile aufgerufen. Wenn EndEdit aufgerufen wird, werden die Änderungen auf die zugrunde liegende DataTable angewendet und können später mithilfe der AcceptChanges-Methode oder der RejectChanges-Methode der Objekte DataTable, DataSet oder DataRow übernommen oder abgelehnt werden. Wenn AllowNew auf false festgelegt ist, wird beim Aufrufen der AddNew-Methode der DataRowView eine Ausnahme ausgelöst.
Wenn AllowEdit auf true festgelegt ist, können Sie mithilfe der DataRowView den Inhalt einer DataRow ändern. Mit DataRowView.EndEdit können Sie die Änderungen an der zugrunde liegenden Zeile bestätigen oder sie mit DataRowView.CancelEdit ablehnen. Beachten Sie, dass jeweils nur eine Zeile bearbeitet werden kann. Wenn Sie die AddNew-Methode oder die BeginEdit-Methode der DataRowView aufrufen, während eine ausstehende Zeile vorhanden ist, wird EndEdit implizit für die ausstehende Zeile aufgerufen. Wenn EndEdit aufgerufen wird, werden die vorgeschlagenen Änderungen in der Current-Zeilenversion der zugrunde liegenden DataRow platziert und können später mithilfe der AcceptChanges-Methode oder der RejectChanges-Methode der Objekte DataTable, DataSet oder DataRow übernommen oder abgelehnt werden. Wenn AllowEdit auf false festgelegt ist, wird bei dem Versuch, einen Wert in der DataView zu ändern, eine Ausnahme ausgelöst.
Wenn eine vorhandene DataRowView bearbeitet wird, werden Ereignisse der zugrunde liegenden DataTable weiterhin mit den vorgeschlagenen Änderungen ausgelöst. Wenn Sie EndEdit oder CancelEdit für die zugrunde liegende DataRow aufrufen, werden ausstehende Änderungen angewendet oder verworfen, unabhängig davon, ob EndEdit oder CancelEdit für DataRowView aufgerufen wird.
Wenn AllowDelete auf true festgelegt ist, können Sie mit der Delete-Methode des DataView-Objekts oder des DataRowView-Objekts Zeilen aus der DataView löschen. Die Zeilen werden aus der zugrundeliegenden DataTable gelöscht. Sie können die Löschvorgänge später mit AcceptChanges oder RejectChanges übernehmen oder ablehnen. Wenn AllowDelete auf false festgelegt ist, wird beim Aufrufen der Delete-Methode des DataView-Objekts oder des DataRowView-Objekts eine Ausnahme ausgelöst.
Im folgenden Codebeispiel wird DataView für das Löschen von Zeilen deaktiviert und mit DataView der zugrunde liegenden Tabelle eine neue Zeile hinzugefügt.
Dim custTable As DataTable = custDS.Tables("Customers")
Dim custView As DataView = custTable.DefaultView
custView.Sort = "CompanyName"
custView.AllowDelete = False
Dim newDRV As DataRowView = custView.AddNew()
newDRV("CustomerID") = "ABCDE"
newDRV("CompanyName") = "ABC Products"
newDRV.EndEdit()
DataTable custTable = custDS.Tables["Customers"];
DataView custView = custTable.DefaultView;
custView.Sort = "CompanyName";
custView.AllowDelete = false;
DataRowView newDRV = custView.AddNew();
newDRV["CustomerID"] = "ABCDE";
newDRV["CompanyName"] = "ABC Products";
newDRV.EndEdit();