데이터 DataTable에서 변경한 내용의 정확성을 확인한 후, AcceptChanges, DataRow, 또는 DataTable의 DataSet 메서드를 사용하여 변경 내용을 수락할 수 있습니다. 이렇게 하면 현재 행 값을 원래 값으로 설정하고 RowState 속성을 변경되지 않음으로 설정합니다. 변경 내용을 적용하거나 거부하면 RowError 정보가 지워지고 HasErrors 속성이 false로 설정됩니다. 변경 내용을 적용하거나 거부하면 데이터 원본의 데이터 업데이트에도 영향을 줄 수 있습니다. 자세한 내용은 DataAdapters를 사용하여 데이터 원본 업데이트를 참조하세요.
DataTable에 외래 키 제약 조건이 있는 경우 AcceptChanges 및 RejectChanges를 사용하여 수락되거나 거부된 변경 내용은 ForeignKeyConstraint.AcceptRejectRule에 따라 DataRow의 자식 행으로 전파됩니다. 자세한 내용은 DataTable 제약 조건을 참조하세요.
다음 예제에서는 오류가 있는 행을 확인하고, 해당하는 경우 오류를 해결하며, 오류를 해결할 수 없는 행을 거부합니다. 해결된 오류의 경우 RowError 값이 빈 문자열로 다시 설정되어 HasErrors 속성이 false로 설정됩니다. 오류가 있는 모든 행이 해결되거나 거부되면 전체 DataTable에 대한 모든 변경 내용을 수락하기 위해 AcceptChanges가 호출됩니다.
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();