Condividi tramite


AcceptChanges e RejectChanges

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 Aggiornamenti di origini dati tramite DataAdapter (ADO.NET).

Se nella DataTable sono presenti 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 ulteriori informazioni, vedere Vincoli di DataTable (ADO.NET).

L'esempio seguente controlla se sono presenti righe con errori, risolve errori laddove è possibile e rifiuta le righe contenenti errori non risolvibili. Notare che, per quanto riguarda gli errori risolti, il valore RowError viene reimpostato su una stringa vuota, provocando l'impostazione della proprietà HasErrors su false. Quando tutte le righe contenenti errori sono state risolte o rifiutate, viene effettuata la chiamata ad AcceptChanges per accettare tutte le modifiche per l'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()
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

Riferimenti

DataRow

DataSet

DataTable

Altre risorse

Modifica dei dati in una DataTable