Partilhar via


AceitarAlterações e RejeitarAlterações

Após verificar a exatidão das alterações feitas aos dados em DataTable, pode aceitar as alterações utilizando o método AcceptChanges de DataRow, DataTable, ou DataSet, que definirá os valores da linha para os valores Original e definirá a propriedade RowState para Inalterada. Aceitar ou rejeitar alterações elimina qualquer RowError informação e define a HasErrors propriedade como falsa. 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 aceites ou rejeitadas usando AcceptChanges e RejectChanges são propagadas para linhas filhas do DataRow de acordo com a Regra 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. Note que, para erros resolvidos, o RowError valor é redefinido para uma cadeia vazia, fazendo com que a HasErrors propriedade seja definida como falsa. Quando todas as linhas com erros foram resolvidas ou rejeitadas, AcceptChanges é chamado para aceitar todas as alterações para 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();

Ver também