Úpravy zobrazení dat
Můžete použít DataView k přidání, odstranění nebo úpravě řádků dat v podkladové tabulce. Možnost použití DataView k úpravě dat v podkladové tabulce je řízena nastavením jedné ze tří logických vlastností DataView. Tyto vlastnosti jsou AllowNew, AllowEdita AllowDelete. Ve výchozím nastavení jsou nastaveny na true .
Pokud AllowNew je true, můžete použít AddNew metodu DataView k vytvoření nové DataRowView. Všimněte si, že nový řádek není ve skutečnosti přidán do podkladového DataTable objektu, dokud EndEdit není volána metoda DataRowView . Pokud je CancelEdit volána metoda DataRowView , nový řádek se zahodí. Všimněte si také, že najednou můžete upravovat pouze jedno zobrazení DataRowView . Pokud voláte AddNew nebo BeginEdit Metoda DataRowView zatímco čeká řádek existuje, EndEdit je implicitně volána na čekající řádek. Při zavolání EndEdit se změny použijí na podkladovou tabulku DataTable a lze později potvrdit nebo odmítnout pomocí AcceptChanges nebo RejectChanges metody DataTable, DataSet nebo DataRow objektu. Pokud AllowNew je false, je vyvolán výjimka, pokud voláte AddNew metoda DataRowView.
Pokud allowEdit je true, můžete upravit obsah DataRow prostřednictvím DataRowView. Změny podkladového řádku můžete potvrdit pomocí DataRowView.EndEdit nebo odmítnout změny pomocí DataRowView.CancelEdit. Všimněte si, že najednou je možné upravovat jenom jeden řádek. Pokud voláte AddNew nebo BeginEdit metody DataRowView, zatímco čekající řádek existuje, EndEdit je implicitně volán na čekající řádek. Při zavolání EndEdit, navrhované změny jsou umístěny ve verzi Aktuální řádek podklad DataRow a lze později potvrdit nebo odmítnout pomocí AcceptChanges nebo RejectChanges metody DataTable, DataSet nebo DataRow objektu. Pokud allowEdit je false, je vyvolána výjimka, pokud se pokusíte upravit hodnotu v DataView.
Při úpravě existujícího objektu DataRowView budou události podkladové tabulky DataTable stále vyvolány s navrhovanými změnami. Všimněte si, že pokud voláte EndEdit nebo CancelEdit na podklad dataRow, čekající změny budou použity nebo zrušeny bez ohledu na to, zda EndEdit nebo CancelEdit je volána v DataRowView.
Pokud AllowDelete je true, můžete odstranit řádky z DataView pomocí Delete Metoda DataView dataView nebo DataRowView objektu a řádky jsou odstraněny z podkladové DataTable. Později můžete potvrdit nebo odmítnout odstranění pomocí AcceptChanges nebo RejectChanges v uvedeném pořadí. Pokud AllowDelete je false, je vyvolán výjimka, pokud voláte Delete metoda DataView nebo DataRowView.
Následující příklad kódu zakáže použití DataView k odstranění řádků a přidá nový řádek do podkladové tabulky pomocí 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();