방법: 변경된 행 검색
데이터 테이블의 각 행에는 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); }
참고 항목
작업
개념
Visual Studio에서 데이터에 Windows Forms 컨트롤 바인딩