연습: Windows Forms 응용 프로그램에서 조회 테이블 만들기
조회 테이블은 특정 테이블의 정보를 다른 테이블의 외래 키 필드 값을 기반으로 표시하는 데 사용됩니다. 판매 데이터베이스의 Orders 테이블을 예로 들어 보겠습니다. Orders 테이블의 각 레코드에는 주문을 한 고객을 나타내는 CustomerID가 포함되어 있습니다. CustomerID는 Customers 테이블의 고객 레코드를 가리키는 외래 키입니다. Orders 테이블의 주문 목록을 표시할 때 CustomerID가 아닌 실제 고객 이름을 표시하려는 경우가 있습니다. 고객 이름이 Customers 테이블에 들어 있고 Orders 테이블의 데이터를 제공하려는 경우 조회 테이블을 만들어야 하는데, 이 조회 테이블로 Orders 레코드의 CustomerID 값을 가져오고 해당 값을 사용하여 관계를 탐색하며 더 쉽게 읽을 수 있는 고객 이름을 반환합니다. 이러한 개념을 조회 테이블이라고 합니다.
이 연습에서 설명하는 작업은 다음과 같습니다.
새 Windows 응용 프로그램 프로젝트를 만듭니다.
데이터 소스 구성 마법사를 사용하여 데이터 집합을 만들고 구성합니다.
데이터 소스 창에서 항목을 끌어오는 경우 폼에 만들어질 컨트롤을 선택합니다. 자세한 내용은 방법: 데이터 소스 창에서 끌어 올 때 만들 컨트롤 설정을 참조하십시오.
데이터 소스 창에서 폼으로 항목을 끌어 데이터 바인딩된 컨트롤을 만듭니다.
외래 키 관계를 통해 바인딩된 컨트롤에 관련 테이블을 놓아 조회 테이블을 설정합니다.
사전 요구 사항
이 연습을 완료하려면 다음 사항이 필요합니다.
- Northwind 샘플 데이터베이스에 대한 액세스. 자세한 내용은 방법: 샘플 데이터베이스 설치을 참조하십시오.
새 Windows 응용 프로그램 만들기
새 Windows 응용 프로그램 프로젝트를 만들려면
파일 메뉴에서 새 프로젝트를 만듭니다.
프로젝트 이름을 LookupTableWalkthrough로 지정합니다.
Windows 응용 프로그램을 선택하고 확인을 클릭합니다. 자세한 내용은 .NET Framework로 클라이언트 응용 프로그램 개발을 참조하십시오.
LookupTableWalkthrough 프로젝트가 만들어져 솔루션 탐색기에 추가됩니다.
새 데이터 소스 만들기
데이터 소스를 만들려면
데이터 메뉴에서 데이터 소스 표시를 클릭합니다.
데이터 소스 창에서 새 데이터 소스 추가를 선택하여 데이터 소스 구성 마법사를 시작합니다.
데이터 소스 형식 선택 페이지에서 데이터베이스를 선택하고 다음을 클릭합니다.
데이터 연결 선택 페이지에서 다음 중 한 가지를 수행합니다.
Northwind 샘플 데이터베이스에 대한 데이터 연결이 드롭다운 목록에 표시되면 해당 연결을 선택합니다.
또는
새 연결을 선택하여 연결 추가/수정 대화 상자를 시작합니다.
데이터베이스에 암호가 필요하면 중요한 데이터를 포함하는 옵션을 선택하고 다음을 클릭합니다.
응용 프로그램 구성 파일에 연결 문자열 저장 페이지에서 다음을 클릭합니다.
데이터베이스 개체 선택 페이지에서 테이블 노드를 확장합니다.
Customers 및 Orders 테이블을 선택한 다음 마침을 클릭합니다.
NorthwindDataSet가 프로젝트에 추가되고 테이블 두 개가 데이터 소스 창에 나타납니다.
폼에서 데이터 바인딩된 컨트롤 만들기
폼에서 데이터 바인딩된 컨트롤을 만들려면
데이터 소스 창에서 Customers 노드를 확장합니다.
Orders 노드의 컨트롤 목록에서 Details를 선택하여 관련 Orders 테이블의 삭제 유형을 Details로 변경합니다. 자세한 내용은 방법: 데이터 소스 창에서 끌어 올 때 만들 컨트롤 설정을 참조하십시오.
관련 Orders 노드를 확장한 다음 CustomerID 노드의 컨트롤 목록에서 ComboBox를 선택하여 CustomerID 열의 삭제 유형을 콤보 상자로 변경합니다.
관련 Orders 노드를 데이터 소스 창에서 Form1로 끌어 옵니다.
설명 레이블이 있는 데이터 바인딩된 컨트롤이 레코드 탐색을 위한 도구 모음인 BindingNavigator와 함께 폼에 나타납니다. NorthwindDataSet, CustomersTableAdapter, BindingSource 및 BindingNavigator가 구성 요소 트레이에 나타납니다.
조회 테이블 만들기
CustomerID 콤보 상자에서 속성을 설정하여 조회 테이블을 설정합니다.
폼에서 조회 테이블 기능을 만들려면
주 Customers 노드를 데이터 소스 창에서 Form1의 CustomerID 콤보 상자로 직접 끌어 옵니다.
참고
아래 테이블은 참조용이며 속성은 위 절차의 끌기 작업 중에 자동으로 설정됩니다.디자이너는 아래의 "설정 설명"에서 설명하는 것처럼 다음 속성을 설정합니다.테이블 구조에 따라 조회 테이블이 정상적으로 작동하도록 하려면 속성을 조정해야 할 수 있습니다.
속성
설정 설명
DataSource
Visual Studio는 사용자가 컨트롤로 끌어 온 테이블에 대해 작성된 BindingSource로 이 속성을 설정합니다. 컨트롤을 만들 때 작성된 BindingSource가 아닙니다.
이 속성을 조정해야 하는 경우 표시할 열이 포함된 테이블의 BindingSource로 설정합니다. (이 연습에서 해당 속성은 CustomersBindingSource입니다.)
DisplayMember
Visual Studio는 컨트롤로 끄는 테이블에 대해 문자열 데이터 형식을 포함하는 기본 키 다음의 첫 번째 열로 이 속성을 설정합니다.
이 속성을 조정해야 하는 경우 표시하려는 열 이름으로 설정합니다.
ValueMember
Visual Studio는 이 속성을 기본 키에 포함되는 첫 번째 열로 설정하거나 키가 정의되어 있지 않으면 테이블의 첫 번째 열로 설정합니다.
이 속성을 조정해야 하는 경우 표시할 열이 포함된 테이블의 기본 키로 설정합니다.
SelectedValue
Visual Studio는 데이터 소스 창에서 끈 원래 열로 이 속성을 설정합니다.
이 속성을 조정해야 하는 경우 관련 테이블의 외래 키 열로 설정합니다. (이 연습에서 해당 속성은 Orders 테이블의 CustomerID입니다.)
응용 프로그램 실행
응용 프로그램을 실행하려면
F5 키를 누릅니다.
주문을 탐색한 다음 CustomerID 콤보 상자에 Orders 테이블의 CustomerID 열이 아닌 Customers 테이블의 각 주문에 대한 CompanyName이 표시되는지 확인합니다.
다음 단계
응용 프로그램 요구 사항에 따라 데이터 바인딩된 폼을 만든 후 몇 단계를 더 수행해야 할 수도 있습니다. 이 연습에서 보완할 수 있는 사항은 다음과 같습니다.
폼에 검색 기능을 추가합니다. 자세한 내용은 방법: Windows Forms 응용 프로그램에 매개 변수가 있는 Query 추가을 참조하십시오.
업데이트를 데이터베이스로 다시 보내는 기능을 추가합니다. 자세한 내용은 연습: 데이터베이스에 데이터 저장(단일 테이블)을 참조하십시오.
데이터 소스 창에서 마법사로 데이터 집합 구성을 선택하여 Orders 테이블을 데이터 집합에 추가합니다. 그런 후에 관련 Orders 노드(Customers 테이블 내의 Fax 열 아래에 있는 노드)를 폼으로 끌어 관련 데이터를 표시하는 컨트롤을 추가할 수 있습니다. 자세한 내용은 방법: Windows Forms 응용 프로그램에서 관련 데이터 표시을 참조하십시오.
참고 항목
개념
Visual Studio에서 데이터에 Windows Forms 컨트롤 바인딩