다음을 통해 공유


AcceptChanges 및 RejectChanges

데이터 DataTable변경 내용의 정확도를 확인한 후 , AcceptChanges또는 DataRow행 값을 값 DataTable 으로 설정하고 속성을 DataSet 값으로 설정하는 CurrentOriginal 메서드RowState를 사용하여 변경 내용을 수락할 수 있습니다. 변경 내용을 적용하거나 거부하면 모든 RowError 정보가 지워지고 속성이 HasErrorsfalse로 설정됩니다. 변경 내용을 적용하거나 거부하면 데이터 원본의 데이터 업데이트에도 영향을 줄 수 있습니다. 자세한 내용은 DataAdapters를 사용하여 데이터 원본 업데이트를 참조하세요.

DataTable에 외래 키 제약 조건이 있는 경우, AcceptChangesRejectChanges 메서드를 사용하여 변경 내용이 허용되거나 거부되며, ForeignKeyConstraint.AcceptRejectRule에 따라 의 자식 행으로 전파됩니다. 자세한 내용은 DataTable 제약 조건을 참조하세요.

다음 예제에서는 오류가 있는 행을 확인하고, 해당하는 경우 오류를 해결하며, 오류를 해결할 수 없는 행을 거부합니다. 해결된 오류의 RowError 경우 값이 빈 문자열로 다시 설정되어 속성이 HasErrorsfalse로 설정됩니다. 오류가 있는 모든 행이 해결되거나 거부 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();

참고하십시오