Compartilhar 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 DataRow, DataTableou DataSet, que definirá os Current valores de linha como os Original valores e definirá a RowState propriedade como Inalterado. Aceitar ou rejeitar alterações limpa qualquer RowError informação e define a HasErrors propriedade 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 houver restrições de chave estrangeira no DataTable, as alterações aceitas ou rejeitadas usando AcceptChanges e RejectChanges serão propagadas para linhas filho de DataRow e de acordo com ForeignKeyConstraint.AcceptRejectRule. Para obter mais informações, consulte Restrições de DataTable.

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