Modyfikowanie elementów DataView
Możesz użyć polecenia DataView , aby dodać, usunąć lub zmodyfikować wiersze danych w tabeli bazowej. Możliwość modyfikowania danych w tabeli bazowej przy użyciu kontrolki DataView jest kontrolowana przez ustawienie jednej z trzech właściwości logicznych elementu DataView. Te właściwości to AllowNew, AllowEditi AllowDelete. Są one domyślnie ustawione na wartość true .
Jeśli wartość AllowNew ma wartość true, możesz użyć AddNew metody elementu DataView , aby utworzyć nowy DataRowViewelement . Należy pamiętać, że nowy wiersz nie jest rzeczywiście dodawany do bazowego DataTable do momentu EndEdit wywołania metody DataRowView. Jeśli wywoływana CancelEdit jest metoda DataRowView , nowy wiersz zostanie odrzucony. Należy również pamiętać, że w danym momencie można edytować tylko jeden element DataRowView . Jeśli wywołasz metodę AddNew lub BeginEdit elementu DataRowView, gdy istnieje oczekujący wiersz, element EndEdit jest niejawnie wywoływany w oczekującym wierszu. Po wywołaniu metody EndEdit zmiany są stosowane do bazowej tabeli DataTable i można je później zatwierdzić lub odrzucić przy użyciu metod AcceptChanges lub RejectChanges obiektu DataTable, DataSet lub DataRow. Jeśli wartość AllowNew ma wartość false, w przypadku wywołania metody AddNew elementu DataRowView zostanie zgłoszony wyjątek.
Jeśli parametr AllowEdit ma wartość true, możesz zmodyfikować zawartość elementu DataRow za pomocą elementu DataRowView. Zmiany w wierszu bazowym można potwierdzić przy użyciu elementu DataRowView.EndEdit lub odrzucić zmiany przy użyciu elementu DataRowView.CancelEdit. Należy pamiętać, że jednocześnie można edytować tylko jeden wiersz. Jeśli wywołasz metody AddNew lub BeginEdit elementu DataRowView , gdy istnieje oczekujący wiersz, element EndEdit jest niejawnie wywoływany w oczekującym wierszu. Po wywołaniu elementu EndEdit proponowane zmiany są umieszczane w bieżącej wersji wiersza bazowego elementu DataRow i można je później zatwierdzić lub odrzucić przy użyciu metod AcceptChanges lub RejectChanges obiektu DataTable, DataSet lub DataRow. Jeśli parametr AllowEdit ma wartość false, w przypadku próby zmodyfikowania wartości w widoku DataView zostanie zgłoszony wyjątek.
W przypadku edytowania istniejącej kontrolki DataRowView zdarzenia bazowej tabeli DataTable będą nadal zgłaszane wraz z proponowanymi zmianami. Należy pamiętać, że jeśli wywołasz metodę EndEdit lub CancelEdit w bazowym obiekcie DataRow, oczekujące zmiany zostaną zastosowane lub anulowane niezależnie od tego, czy element EndEdit czy CancelEdit jest wywoływany w widoku DataRowView.
Jeśli parametr AllowDelete ma wartość true, możesz usunąć wiersze z widoku DataView przy użyciu metody Delete obiektu DataView lub DataRowView, a wiersze zostaną usunięte z bazowej tabeli DataTable. Później możesz zatwierdzić lub odrzucić usunięcia, używając odpowiednio opcji AcceptChanges lub RejectChanges . Jeśli parametr AllowDelete ma wartość false, w przypadku wywołania metody Delete elementu DataView lub DataRowView zostanie zgłoszony wyjątek.
Poniższy przykład kodu wyłącza używanie elementu DataView do usuwania wierszy i dodaje nowy wiersz do tabeli bazowej przy użyciu elementu DataView.
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();