Ändern von Daten mit einer DataView
Sie können die DataView zum Hinzufügen, Löschen oder Ändern von Zeilen mit Daten in der zugrunde liegenden Tabelle verwenden. Die Möglichkeit, mit DataView Datenzeilen in der zugrunde liegenden Tabelle zu ändern, wird durch Festlegen einer der drei booleschen Eigenschaften der DataView gesteuert. Diese Eigenschaften sind AllowNew, AllowEdit und AllowDelete. Der Standardwert ist jeweils true.
Wenn True für AllowNew festgelegt ist, können Sie mit der AddNew-Methode der DataView eine neue DataRowView erstellen. Beachten Sie, dass eine neue Zeile erst der zugrunde liegenden DataTable 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 außerdem, dass Sie jeweils nur eine DataRowView bearbeiten können. Wenn Sie die Methoden AddNew oder BeginEdit 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 mit Hilfe der Methoden AcceptChanges oder RejectChanges der Objekte DataTable, DataSet oder DataRow übernommen oder abgelehnt werden. Wenn False für AllowNew festgelegt ist, wird eine Ausnahme ausgelöst, sofern Sie die AddNew-Methode der DataRowView aufrufen.
Wenn True für AllowEdit festgelegt ist, können Sie den Inhalt einer DataRow mit Hilfe der DataRowView ä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 Methoden AddNew oder BeginEdit 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 die Current-Zeilenversion der zugrunde liegenden DataRow platziert und können später mit Hilfe der Methoden AcceptChanges oder RejectChanges der Objekte DataTable, DataSet oder DataRow übernommen oder abgelehnt werden. Wenn False für AllowEdit festgelegt ist, wird eine Ausnahme ausgelöst, sofern Sie versuchen, einen Wert in der DataView zu ändern.
Wenn eine vorhandene DataRowView bearbeitet wird, werden die 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, ungeachtet dessen, ob EndEdit oder CancelEdit für DataRowView aufgerufen wird.
Wenn True für AllowDelete 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 zugrunde liegenden DataTable gelöscht. Sie können die Löschvorgänge später mit AcceptChanges oder RejectChanges übernehmen oder ablehnen. Wenn False für AllowDelete festgelegt ist, wird eine Ausnahme ausgelöst, sofern Sie die Delete-Methode der DataView oder der DataRowView aufrufen.
Im folgenden Codebeispiel wird die Möglichkeit deaktiviert, Zeilen mit Hilfe der DataView zu löschen, und der zugrunde liegenden Tabelle wird 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()
[C#]
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();
Siehe auch
Erstellen einer DataView | DataTable-Klasse | DataView-Klasse | DataRowView-Klasse