방법: 기존 Visual Studio 프로젝트에서 계층적 업데이트 구현
Visual Studio 2008부터는 형식화된 데이터 집합이 TableAdapterManager 구성 요소에 의해 향상되었습니다. TableAdapterManager에서는 여러 관련 테이블의 데이터를 저장하는 데 필요한 코드가 여러 줄의 코드로 이루어진 여러 개의 루틴에서 하나의 메서드 호출(TableAdapterManager.UpdateAll(TypedDataset))로 줄었습니다. 기본적으로 계층적 업데이트는 프로젝트에 추가되거나 작성되는 모든 새 데이터 집합에 대해 설정됩니다. 기존 데이터 집합, 즉 Visual Studio 2008 이전의 Visual Studio 버전에서 만든 데이터 집합에는 TableAdapterManager 구성 요소가 들어 있지 않습니다. 따라서 이전 버전에서 만든 데이터 집합의 Hierarchical Update 속성은 기본적으로 False로 설정되어 있습니다. Hierarchical Update 속성을 True로 설정한 후 데이터 집합을 저장하는 방법으로 TableAdapterManager 구성 요소를 생성할 수 있습니다. 자세한 내용은 TableAdapterManager 개요를 참조하십시오.
계층적 업데이트 활성화 및 TableAdapterManager 구성 요소 생성
참고
다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.
이전 버전의 형식화된 데이터 집합에서 계층적 업데이트를 활성화하려면
Visual Studio에서 데이터 집합 또는 형식화된 데이터 집합이 포함된 프로젝트를 엽니다.
Visual Studio 변환 마법사를 완료합니다.
솔루션 탐색기에서 .xsd 파일을 두 번 클릭하여 데이터 집합 디자이너에서 데이터 집합을 엽니다.
데이터 집합 디자이너의 빈 곳을 클릭합니다.
속성 창에서 Hierarchical Update 속성을 찾습니다.
Hierarchical Update 속성의 값을 True로 설정합니다.
빌드 메뉴에서 솔루션 빌드를 클릭합니다.
TableAdapterManager 구성 및 데이터 저장
Hierarchical Update 속성을 True로 설정하고 데이터 집합을 저장하면 계층적 업데이트를 활성화하는 TableAdapterManager 구성 요소가 생성됩니다. TableAdapterManager 구성 요소를 생성한 후에는 새 TableAdapterManager를 인스턴스화하고 개별 TableAdapter.Update() 메서드 대신 TableAdapterManager.UpdateAll() 메서드를 호출하도록 기존 코드를 업데이트해야 합니다. 기존 TableAdapter 코드가 클래스 라이브러리 또는 사용자 인터페이스가 없는 다른 파일에 있는 경우에는 새 TableAdapterManager를 프로그래밍 방식으로 인스턴스화해야 합니다. 기존 TableAdapter 코드가 폼에 있는 경우에는 도구 상자에서 폼으로 TableAdapterManager 구성 요소를 끌어 오는 방법으로 새 TableAdapterManager를 인스턴스화할 수 있습니다.
TableAdapterManager는 강력한 형식이므로 관리하는 개별 TableAdapter를 참조하는 속성을 사용하여 생성됩니다. 따라서 TableAdapterManager를 인스턴스화한 후에는 다음 절차에 따라 개별 TableAdapter 속성에 각 TableAdapter의 인스턴스를 설정해야 합니다.
사용자 인터페이스가 없는 기존 프로젝트에 TableAdapterManager를 추가하려면
TableAdapter.Update 메서드를 호출하는 코드를 찾습니다(예: CustomersTableAdapter.Update(NorthwindDataSet.Customers)).
개별 TableAdapter.Update 메서드를 호출하는 코드를 다음 코드로 바꿉니다.
Dim adapterManager as new TableAdapterManager adapterManager.TableName1TableAdapter = new _ TableName1TableAdapter adapterManager.TableName2TableAdapter = new _ TableName2TableAdapter adapterManager.UpdateAll(Me.DataSetName)
TableAdapterManager adapterManager = new TableAdapterManager(); adapterManager.TableName1TableAdapter = new TableName1TableAdapter(); adapterManager.TableName2TableAdapter = new TableName2TableAdapter(); adapterManager.UpdateAll(this.DataSetName);
사용자 인터페이스가 있는 기존 프로젝트에 TableAdapterManager를 추가하려면
디자인 뷰에서 폼을 엽니다.
도구 상자에서 폼으로 TableAdapterManager 구성 요소를 끌어 옵니다.
TableAdapter.Update 메서드를 호출하는 코드를 찾습니다(예: CustomersTableAdapter.Update(NorthwindDataSet.Customers)).
개별 TableAdapter.Update 메서드를 호출하는 코드를 다음 코드로 바꿉니다.
Me.TableAdapterManager.TableName1TableAdapter = _ new DatasetNameTableAdapters.TableName1TableAdapter Me.TableAdapterManager.TableName2TableAdapter = _ new DatasetNameTableAdapters.TableName2TableAdapter Me.TableAdapterManager.UpdateAll(Me.DataSetName)
TableAdapterManager.TableName1TableAdapter = new TableName1TableAdapter(); TableAdapterManager.TableName2TableAdapter = new TableName2TableAdapter(); TableAdapterManager.UpdateAll(this.DataSetName);