연습: Windows Form에 관련 데이터 표시
대부분의 응용 프로그램 시나리오에서는 테이블 두 개 이상의 데이터를 사용하며 관련 테이블의 데이터를 사용하는 경우도 많습니다. 이러한 경우에는 부모-자식 관계를 사용하게 됩니다. 고객 레코드를 선택하면 해당 고객의 주문이 표시되는 폼을 만드는 경우를 예로 들 수 있습니다. 이 경우 자식 BindingSource의 DataSource 속성을 자식 테이블이 아닌 부모 BindingSource로 설정하고 자식 BindingSource의 DataMember 속성을 부모 및 자식 테이블을 함께 연결하는 데이터 관계로 설정하여 폼에 관련 레코드를 표시합니다.
이 연습에서 설명하는 작업은 다음과 같습니다.
Windows 응용 프로그램 프로젝트를 만듭니다.
데이터 소스 구성 마법사를 사용하여 Northwind 데이터베이스의 Customers 및 Orders 테이블을 기반으로 하는 응용 프로그램의 데이터 집합을 만들고 구성합니다.
Customers 테이블의 데이터를 표시하기 위한 컨트롤을 추가합니다.
선택된 Customer를 기준으로 Orders를 표시하기 위한 컨트롤을 추가합니다.
각 고객을 선택하고 선택한 고객에 대해 올바른 주문이 표시되는지 확인하는 방식으로 응용 프로그램을 테스트합니다.
사전 요구 사항
이 연습을 완료하려면 다음 사항이 필요합니다.
- Northwind 샘플 데이터베이스에 대한 액세스. 샘플 데이터베이스를 설정하려면 방법: 샘플 데이터베이스 설치를 참조하세요.
프로젝트 만들기
첫 번째 단계에서는 Windows 응용 프로그램을 만듭니다.
Windows 응용 프로그램 프로젝트를 만들려면
파일 메뉴에서 새 프로젝트를 만듭니다.
프로젝트 이름을 RelatedDataWalkthrough로 지정합니다.
Windows 응용 프로그램을 선택하고 확인을 클릭합니다. 자세한 내용은 .NET Framework로 클라이언트 응용 프로그램 개발을 참조하십시오.
RelatedDataWalkthrough 프로젝트가 만들어져 솔루션 탐색기에 추가됩니다.
데이터 소스 만들기
이 단계에서는 Northwind 샘플 데이터베이스의 Customers 및 Orders 테이블을 기반으로 하는 데이터 집합을 만듭니다.
데이터 소스를 만들려면
데이터 메뉴에서 데이터 소스 표시를 클릭합니다.
데이터 소스 창에서 새 데이터 소스 추가를 선택하여 데이터 소스 구성 마법사를 시작합니다.
데이터 소스 형식 선택 페이지에서 데이터베이스를 선택하고 다음을 클릭합니다.
데이터 연결 선택 페이지에서 다음 중 한 가지를 수행합니다.
Northwind 샘플 데이터베이스에 대한 데이터 연결이 드롭다운 목록에 표시되면 해당 연결을 선택합니다.
또는
새 연결을 선택하여 연결 추가/수정 대화 상자를 시작합니다.
데이터베이스에 암호가 필요하면 중요한 데이터를 포함하는 옵션을 선택하고 다음을 클릭합니다.
응용 프로그램 구성 파일에 연결 문자열 저장 페이지에서 다음을 클릭합니다.
데이터베이스 개체 선택 페이지에서 테이블 노드를 확장합니다.
Customers 및 Orders 테이블을 선택한 다음 마침을 클릭합니다.
NorthwindDataSet가 프로젝트에 추가되고 Customers 테이블이 데이터 소스 창에 나타납니다.
Customers 테이블의 데이터를 표시하는 컨트롤 만들기
고객 데이터(부모 레코드)를 표시하는 컨트롤을 만들려면
데이터 소스 창에서 Customers 테이블을 선택하고 드롭다운 화살표를 클릭합니다.
메뉴에서 Details를 선택합니다.
주 Customers 노드를 데이터 소스 창에서 Form1 위쪽으로 끌어 옵니다.
설명 레이블이 있는 데이터 바인딩된 컨트롤이 레코드 탐색을 위한 도구 모음인 BindingNavigator와 함께 폼에 나타납니다. NorthwindDataSet, CustomersTableAdapter, BindingSource 및 BindingNavigator가 구성 요소 트레이에 나타납니다.
Orders 테이블의 데이터를 표시하는 컨트롤 만들기
각 고객의 주문(자식 레코드)을 표시하는 컨트롤을 만들려면
데이터 소스 창에서 Customers 노드를 확장하고 Customers 테이블의 마지막 열(확장 가능한 Orders 노드)을 선택한 후 Form1의 아래쪽으로 끌어 옵니다.
DataGridView가 폼에 추가되고 새 BindingSource(OrdersBindingSource) 및 TableAdapter(OrdersTableAdapter)가 구성 요소 트레이에 추가됩니다.
참고
속성 창을 열고 OrdersBindingSource를 선택합니다.DataSource 및 DataMember 속성을 검사하여 관련 레코드를 표시하기 위해 바인딩이 어떻게 구성되었는지 확인합니다.DataSource는 Orders 테이블이 아닌 CustomersBindingSource(부모 테이블의 BindingSource)로 설정됩니다.DataMember 속성은 테이블 간의 관계를 설정하는 DataRelation 개체의 이름인 FK_Orders_Customers로 설정됩니다.
응용 프로그램 테스트
응용 프로그램을 테스트하려면
F5 키를 눌러 응용 프로그램을 실행합니다.
CustomersBindingNavigator를 사용해 각 고객을 선택한 다음 DataGridView에 올바른 주문이 표시되는지 확인합니다.
다음 단계
응용 프로그램 요구 사항에 따라 마스터-세부 폼을 만든 후 몇 단계를 더 수행해야 할 수도 있습니다. 이 연습에서 보완할 수 있는 한 가지 사항은 다음과 같습니다.
- Customers 테이블에 매개 변수화를 추가하여 Customers 레코드를 필터링합니다. 이렇게 하려면 Customers 테이블의 데이터를 표시하는 컨트롤을 선택하고 스마트 태그를 클릭한 후에 쿼리 추가를 선택합니다. 검색 조건 작성기 대화 상자에서 필요한 작업을 완료합니다. 자세한 내용은 방법: Windows Forms 응용 프로그램에 매개 변수가 있는 Query 추가을 참조하십시오.
참고 항목
작업
방법: Windows Forms 응용 프로그램에서 관련 데이터 표시
참조
BindingNavigator 컨트롤 개요(Windows Forms)
개념
Visual Studio에서 데이터에 Windows Forms 컨트롤 바인딩