AcceptChanges e RejectChangesAcceptChanges and RejectChanges

Depois de verificar a precisão das alterações feitas nos dados em um DataTable, você pode aceitar as alterações usando o AcceptChanges método do DataRow, DataTableou DataSet, que definirá os valores da linha atual como oOs valores originais e definirão a propriedade RowState como inalterado.After verifying the accuracy of changes made to data in a DataTable, you can accept the changes using the AcceptChanges method of the DataRow, DataTable, or DataSet, which will set the Current row values to be the Original values and will set the RowState property to Unchanged. Aceitar ou rejeitar alterações limpa todas as informações de linhas de erro e define a propriedade HasErrors como false.Accepting or rejecting changes clears out any RowError information and sets the HasErrors property to false. Aceitar ou rejeitar alterações também pode afetar a atualização de dados na fonte de dados.Accepting or rejecting changes can also affect updating data in the data source. Para obter mais informações, consulte Atualizando fontes de dados com DataAdapters.For more information, see Updating Data Sources with DataAdapters.

Se houver restrições de chave estrangeira na DataTable, as alterações aceitas ou rejeitadas usando AcceptChanges e RejectChanges serão propagadas para as linhas filho da DataRow de acordo com o ForeignKeyConstraint. AcceptRejectRule.If foreign key constraints exist on the DataTable, changes accepted or rejected using AcceptChanges and RejectChanges are propagated to child rows of the DataRow according to the ForeignKeyConstraint.AcceptRejectRule. Para obter mais informações, consulte as restrições de DataTable.For more information, see DataTable Constraints.

O exemplo a seguir verifica as linhas com erros, resolve os erros quando aplicável e rejeita as linhas em que o erro não pode ser resolvido.The following example checks for rows with errors, resolves the errors where applicable, and rejects the rows where the error cannot be resolved. Observe que, para erros resolvidos, o valor de Usererror é redefinido como uma cadeia de caracteres vazia, fazendo com que a propriedade HasErrors seja definida como false.Note that, for resolved errors, the RowError value is reset to an empty string, causing the HasErrors property to be set to false. Quando todas as linhas com erros tiverem sido resolvidas ou rejeitadas, AcceptChanges será chamado para aceitar todas as alterações de toda a DataTable.When all the rows with errors have been resolved or rejected, AcceptChanges is called to accept all changes for the entire 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();  

Consulte tambémSee also