방법: 변경된 행 검색
업데이트: 2007년 11월
데이터 테이블의 각 행에는 DataRowState 열거형의 값을 사용하여 해당 행의 현재 상태를 추적하는 RowState 속성이 있습니다. DataSet 또는 DataTable의 GetChanges 메서드를 호출하여 데이터 집합 또는 데이터 테이블에서 변경된 행을 반환할 수 있습니다. GetChanges를 호출하기 전에 데이터 집합의 HasChanges 메서드를 호출하여 변경된 내용이 있는지 확인할 수 있습니다. HasChanges에 대한 자세한 내용은 방법: 변경된 행 검사를 참조하십시오.
참고: |
---|
AcceptChanges 메서드를 호출하여 데이터 집합이나 데이터 테이블의 변경 내용을 커밋한 후에는 GetChanges 메서드에서 데이터를 반환하지 않습니다. 변경된 행을 처리해야 하는 경우에는 AcceptChanges 메서드를 호출하기 전에 처리해야 합니다. |
데이터 집합이나 데이터 테이블의 GetChanges 메서드를 호출하면 변경된 레코드만 들어 있는 새 데이터 집합이나 데이터 테이블이 반환됩니다. 새 레코드나 수정된 레코드와 같은 특정 레코드만 가져오기 위해 DataRowState 열거형의 값을 GetChanges 메서드에 대한 매개 변수로 전달할 수 있습니다.
DataRowVersion 열거형을 사용하면 다른 버전의 행에 액세스할 수 있습니다. 예를 들어, 행을 처리하기 전에 해당 행에서 원래 값을 검사할 수 있습니다.
데이터 집합에서 변경된 레코드를 모두 가져오려면
데이터 집합의 GetChanges 메서드를 호출합니다.
다음 예제에서는 changedRecords라는 새 데이터 집합을 만든 다음 dataSet1라는 다른 데이터 집합의 모든 변경된 레코드를 사용하여 새 데이터 집합을 채웁니다.
Dim changedRecords As DataSet = DataSet1.GetChanges()
DataSet changedRecords = dataSet1.GetChanges();
데이터 테이블에서 변경된 레코드를 모두 가져오려면
DataTable의 GetChanges 메서드를 호출합니다.
다음 예제에서는 changedRecordsTable라는 새 데이터 테이블을 만든 다음 dataTable1이라는 다른 데이터 테이블의 모든 변경된 레코드를 사용하여 새 데이터 테이블을 채웁니다.
Dim changedRecordsTable As DataTable = dataTable1.GetChanges()
DataTable changedRecordsTable = dataTable1.GetChanges();
특정 행 상태를 지닌 레코드를 모두 가져오려면
데이터 집합이나 데이터 테이블의 GetChanges 메서드를 호출하면서 DataRowState 열거형 값을 인수로 전달합니다.
다음 예제에서는 addedRecords라는 새 데이터 집합을 만든 다음 dataSet1 데이터 집합에 추가된 레코드만으로 새 데이터 집합을 채우는 방법을 보여 줍니다.
Dim addedRecords As DataSet = DataSet1.GetChanges(DataRowState.Added)
DataSet addedRecords = dataSet1.GetChanges(DataRowState.Added);
다음 예제에서는 최근에 Customers 테이블에 추가된 모든 레코드를 반환하는 방법을 보여 줍니다.
Private Function GetNewRecords() As NorthwindDataSet.CustomersDataTable Return CType(NorthwindDataSet1.Customers.GetChanges(Data.DataRowState.Added), _ NorthwindDataSet.CustomersDataTable) End Function
private NorthwindDataSet.CustomersDataTable GetNewRecords() { return (NorthwindDataSet.CustomersDataTable) northwindDataSet1.Customers.GetChanges(DataRowState.Added); }