Partilhar via


AcceptChanges e 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 , DataTableou DataSet, que definirá os valores da DataRowlinha Current como sendo os valores Original e definirá a propriedade RowState como Unchanged. Aceitar ou rejeitar alterações limpa qualquer informação RowError e define a propriedade HasErrors como false. Aceitar ou rejeitar alterações também pode afetar a atualização de dados na fonte de dados. Para obter mais informações, consulte Atualizando fontes de dados com DataAdapters.

Se existirem restrições de chave estrangeira na DataTable, as alterações aceitas ou rejeitadas usando AcceptChanges e RejectChanges serão propagadas para linhas filhas da DataRow de acordo com ForeignKeyConstraint.AcceptRejectRule. Para obter mais informações, consulte DataTable Constraints.

O exemplo a seguir verifica linhas com erros, resolve os erros quando aplicável e rejeita as linhas onde o erro não pode ser resolvido. Observe que, para erros resolvidos, o valor RowError é redefinido para uma cadeia de caracteres vazia, fazendo com que a propriedade HasErrors seja definida como 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.

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ém