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


ПринятьИзменения и ОтклонитьИзменения

После проверки точности изменений, внесенных в данные, DataTableможно принять изменения с помощью AcceptChanges метода DataRow, DataTableилиDataSet, что задает значения строк в качестве Current значений и присвоит OriginalRowState свойству значение "Без изменений". Принятие или отклонение изменений очищает любые RowError сведения и задает HasErrors для свойства значение false. Принятие или отклонение изменений также может повлиять на обновление данных в источнике данных. Дополнительные сведения см. в разделе "Обновление источников данных с помощью DataAdapters".

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

В следующем примере проверяются строки с ошибками, устраняются ошибки, где это применимо, и отклоняются строки, в которых не удается устранить ошибку. Обратите внимание, что для разрешенных ошибок значение 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();

См. также