다음을 통해 공유


AcceptChanges 및 RejectChanges

DataTable의 데이터에서 변경된 내용이 정확한지 확인한 후 DataRow, DataTable 또는 DataSetAcceptChanges 메서드를 사용하여 변경 내용을 승인할 수 있습니다. 그러면 Current 행 값이 Original 값으로 설정되고 RowState 속성이 Unchanged로 설정됩니다. 변경 내용을 승인하거나 거부하면 모든 RowError 정보가 지워지고 HasErrors 속성이 false로 설정됩니다. 또한, 변경 사항을 승인하거나 거부하면 데이터 소스에서 데이터를 업데이트하는 데도 영향을 줄 수 있습니다. 자세한 내용은 DataAdapters를 사용하여 데이터 소스 업데이트(ADO.NET)를 참조하십시오.

DataTable에 외래 키 제약 조건이 있는 경우 AcceptChangesRejectChanges를 사용하여 승인되거나 거부된 변경 내용이 ForeignKeyConstraint.AcceptRejectRule에 따라 DataRow의 자식 행으로 전파됩니다. 자세한 내용은 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에서 데이터 조작