Condividi tramite


Modifica di DataView (ADO.NET)

È possibile utilizzare il DataView per aggiungere, eliminare o modificare righe di dati nella tabella sottostante. La possibilità di utilizzare il DataView per modificare i dati nella tabella sottostante è controllata dall'impostazione di una delle tre proprietà Boolean del DataView. Tali proprietà sono AllowNew, AllowEdit e AllowDelete. L'impostazione predefinita è true.

Se la proprietà AllowNew è true, è possibile utilizzare il metodo AddNew del DataView per creare un nuovo DataRowView. Notare che la nuova riga viene effettivamente aggiunta alla DataTable sottostante solo dopo la chiamata del metodo EndEdit di DataRowView. Se viene chiamato il metodo CancelEdit del DataRowView, la nuova riga verrà eliminata. Notare inoltre che è possibile modificare solo un DataRowView alla volta. Se si chiama il metodo AddNew o BeginEdit del DataRowView mentre è presente una riga in sospeso, EndEdit viene chiamato implicitamente per la riga in sospeso. Quando viene chiamato EndEdit, le modifiche vengono applicate alla DataTable sottostante ed è possibile confermarle o rifiutarle in un secondo momento mediante i metodi AcceptChanges o RejectChanges dell'oggetto DataTable, DataSet o DataRow. Se la proprietà AllowNew è false, in caso di chiamata del metodo AddNew del DataRowView viene generata un'eccezione.

Se la proprietà AllowEdit è true, è possibile modificare il contenuto del DataRow mediante il DataRowView. È possibile confermare le modifiche alla riga sottostante mediante DataRowView.EndEdit o rifiutare tali modifiche mediante DataRowView.CancelEdit. Notare che è possibile modificare solo una riga alla volta. Se si chiama il metodo AddNew o BeginEdit del DataRowView mentre è presente una riga in sospeso, EndEdit viene chiamato implicitamente per la riga in sospeso. Quando viene chiamato EndEdit, le modifiche proposte vengono inserite nella versione di riga Current del DataRow sottostante ed è possibile confermarle o rifiutarle in un secondo momento mediante il metodo AcceptChanges o RejectChanges dell'oggetto DataTable, DataSet o DataRow. Se la proprietà AllowEdit è false, in caso di tentativo di modifica di un valore nel DataView viene generata un'eccezione.

Quando un DataRowView esistente viene modificato, gli eventi della DataTable sottostante vengono ancora generati con le modifiche proposte. Notare che se si chiama EndEdit o CancelEdit nel DataRow sottostante, le modifiche in sospeso verranno applicate o annullate indipendentemente dalla chiamata o meno di EndEdit o CancelEdit per il DataRowView.

Se la proprietà AllowDelete è true, è possibile eliminare righe dal DataView mediante il metodo Delete dell'oggetto DataView o DataRowView e le righe verranno eliminate dalla DataTable sottostante. È possibile confermare o rifiutare le eliminazioni in un secondo momento rispettivamente mediante il metodo AcceptChanges o RejectChanges. Se la proprietà AllowDelete è false, in caso di chiamata del metodo Delete del DataView o del DataRowView viene generata un'eccezione.

Nell'esempio di codice seguente viene disabilitata la possibilità di eliminare righe mediante l'oggetto DataView e vengono aggiunte nuove righe alla tabella sottostante mediante l'oggetto 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();

Vedere anche

Riferimenti

DataTable

DataView

DataRowView

Altre risorse

DataView (ADO.NET)