Поделиться через


AcceptChanges и RejectChanges

Обновлен: November 2007

После проверки правильности изменений, внесенных в данные в объекте DataTable, эти изменения можно принять с помощью метода AcceptChanges объекта DataRow, DataTable или DataSet, который присваивает значениям строк Current значения Original, а свойству RowState — значение Unchanged. В результате принятия или отклонения изменений происходит удаление всех данных RowError и свойству HasErrors присваивается значение false. Принятие или отклонение изменений также может затрагивать обновление данных в источнике данных. Дополнительные сведения см. в разделе Обновление источников данных с помощью объектов DataAdapter (ADO.NET).

Если для объекта DataTable существуют ограничения внешнего ключа, то изменения, принятые или отклоненные с помощью методов AcceptChanges или RejectChanges, распространяются на дочерние строки объекта DataRow в соответствии с правилами ForeignKeyConstraint.AcceptRejectRule. Дополнительные сведения см. в разделе Ограничения DataTable (ADO.NET).

В следующем примере происходит проверка на наличие строк с ошибками, по возможности устраняются ошибки и отклоняются строки, в которых ошибка не может быть устранена. Следует отметить, что применительно к устраненным ошибкам значение RowError переустанавливается в пустую строку, что приводит к присвоению свойству HasErrors значения false. После устранения ошибок или отклонения всех строк с ошибками вызывается метод AcceptChanges для принятия всех изменений для всего объекта 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();

См. также

Ссылки

DataRow

DataSet

DataTable

Другие ресурсы

Обработка данных в DataTable