Accettazione o rifiuto delle modifiche alle righe
Dopo aver verificato la correttezza delle modifiche apportate alla DataTable, è possibile accettare tali modifiche utilizzando il metodo AcceptChanges del DataRow, della DataTable o del DataSet. I valori della riga Current verranno impostati come valori Original e la proprietà RowState verrà impostata su Unchanged. L'accettazione o il rifiuto delle modifiche comporta la cancellazione di eventuali informazioni RowError e l'impostazione della proprietà HasErrors su false. È inoltre possibile che l'accettazione o il rifiuto delle modifiche influisca sui dati di aggiornamento nell'origine dati. Per ulteriori informazioni, vedere Aggiornamento del database tramite adattatori di dati e DataSet.
Se nella DataTable vi sono vincoli di chiave esterna, le modifiche accettate o rifiutate tramite AcceptChanges e RejectChanges verranno propagate alle righe figlio del DataRow in base a ForeignKeyConstraint.AcceptRejectRule. Per informazioni dettagliate, vedere Aggiunta di vincoli alla tabella.
L'esempio seguente consente di controllare se sono presenti righe con errori, di risolvere gli errori, dove possibile, e di rifiutare le righe contenenti errori non risolvibili. Si noti che, per quanto riguarda gli errori risolti, il valore RowError viene reimpostato su una stringa vuota. La proprietà HasErrors verrà quindi impostata su false. Quando tutte le righe contenenti errori sono state risolte o rifiutate, verrà effettuata la chiamata ad AcceptChanges per accettare tutte le modifiche dell'intera DataTable.
If workTable.HasErrors Then
Dim errRow As DataRow
For Each errRow in workTable.GetErrors()
If errRow.RowError = "Total cannot exceed 1000." Then
errRow("Total") = 1000
errRow.RowError = "" ' Clear the error.
Else
errRow.RejectChanges()
End If
Next
End If
workTable.AcceptChanges()
[C#]
if (workTable.HasErrors)
{
foreach (DataRow errRow in workTable.GetErrors())
{
if (errRow.RowError == "Total cannot exceed 1000.")
{
errRow["Total"] = 1000;
errRow.RowError = ""; // Clear the error.
}
else
errRow.RejectChanges();
}
}
workTable.AcceptChanges();
Vedere anche
Modifica dei dati in una DataTable | Classe DataRow | Classe DataSet | Classe DataTable