연습: TableAdapter DBDirect 메서드를 사용하여 데이터 저장
이 연습에서는 TableAdapter의 DBDirect 메서드를 사용하여 데이터베이스에 대해 직접 SQL 문을 실행하기 위한 자세한 지침을 제공합니다. TableAdapter의 DBDirect 메서드는 데이터베이스 업데이트를 세밀하게 제어합니다. 이 메서드를 사용하면 응용 프로그램의 필요에 따라 개별 Insert, Update 및 Delete 메서드를 호출하여 특정 SQL 문과 저장 프로시저를 실행할 수 있습니다(한 번의 호출로 UPDATE, INSERT 및 DELETE 문 모두를 수행할 수 있는 오버로드된 Update 메서드와 반대의 의미).
이 연습을 통해 다음과 같은 작업 방법을 배웁니다.
새 Windows 응용 프로그램을 만듭니다.
데이터 소스 구성 마법사를 사용하여 데이터 집합을 만들고 구성합니다.
데이터 소스 창에서 항목을 끌어 올 때 폼에 만들 컨트롤을 선택합니다. 자세한 내용은 방법: 데이터 소스 창에서 끌어 올 때 만들 컨트롤 설정을 참조하십시오.
데이터 소스 창에서 폼으로 항목을 끌어 와 데이터 바인딩된 컨트롤을 만듭니다.
메서드를 추가하여 데이터베이스에 직접 액세스하고 데이터베이스에 대해 삽입, 업데이트 및 삭제 작업을 직접 수행합니다.
사전 요구 사항
이 연습을 완료하려면 다음과 같은 요건이 필요합니다.
- Northwind 샘플 데이터베이스에 액세스할 수 있어야 합니다. 자세한 내용은 방법: 샘플 데이터베이스 설치를 참조하십시오.
Windows 응용 프로그램 만들기
첫 단계에서는 Windows 응용 프로그램을 만듭니다.
새 Windows 프로젝트를 만들려면
Visual Studio의 파일 메뉴에서 새 프로젝트를 만듭니다.
프로젝트 이름을 TableAdapterDbDirectMethodsWalkthrough로 지정합니다.
Windows 응용 프로그램을 선택하고 확인을 클릭합니다. 자세한 내용은 Windows 기반 응용 프로그램 만들기를 참조하십시오.
TableAdapterDbDirectMethodsWalkthrough 프로젝트가 만들어져 솔루션 탐색기에 추가됩니다.
데이터베이스에서 데이터 소스 만들기
이 단계에서는 Northwind 샘플 데이터베이스의 Region 테이블을 기반으로 데이터 소스 구성 마법사를 사용하여 데이터 소스를 만듭니다. 연결을 만들려면 Northwind 샘플 데이터베이스에 액세스할 수 있는 권한이 있어야 합니다. Northwind 샘플 데이터베이스 설치에 대한 자세한 내용은 방법: 샘플 데이터베이스 설치를 참조하십시오.
데이터 소스를 만들려면
데이터 메뉴에서 데이터 소스 표시를 클릭합니다.
데이터 소스 창에서 새 데이터 소스 추가를 선택하여 데이터 소스 구성 마법사를 시작합니다.
데이터 소스 형식 선택 페이지에서 데이터베이스를 선택하고 다음을 클릭합니다.
데이터 연결 선택 페이지에서 다음 중 하나를 수행합니다.
Northwind 샘플 데이터베이스에 대한 데이터 연결이 드롭다운 목록에 표시되면 해당 연결을 선택합니다.
또는
새 연결을 선택하여 연결 추가/수정 대화 상자를 시작합니다. 자세한 내용은 연결 추가/수정 대화 상자(일반)를 참조하십시오.
데이터베이스에 암호가 필요하면 중요한 데이터를 포함하는 옵션을 선택하고 다음을 클릭합니다.
응용 프로그램 구성 파일에 연결 문자열 저장 페이지에서 다음을 클릭합니다.
데이터베이스 개체 선택 페이지에서 테이블 노드를 확장합니다.
Region 테이블을 선택한 다음 마침을 클릭합니다.
NorthwindDataSet이 프로젝트에 추가되고 Region 테이블이 데이터 소스 창에 나타납니다.
데이터 표시를 위한 폼에 컨트롤 추가
데이터 소스 창에서 폼으로 항목을 끌어 와 데이터 바인딩된 컨트롤을 만듭니다.
Windows Form에 데이터 바인딩된 컨트롤을 만들려면
주 Region 노드를 데이터 소스 창에서 폼으로 끌어 옵니다.
DataGridView 컨트롤과 레코드 탐색에 사용되는 도구 스트립(BindingNavigator)이 폼에 나타납니다. NorthwindDataSet, RegionTableAdapter, BindingSource 및 BindingNavigator가 구성 요소 트레이에 나타납니다.
개별 TableAdapter DbDirect 메서드를 호출할 단추를 추가하려면
세 개의 Button 컨트롤을 도구 상자에서 Form1(RegionDataGridView 아래)으로 끌어 놓습니다.
각 단추에서 다음 이름과 텍스트 속성을 설정합니다.
Name
Text
InsertButton
Insert
UpdateButton
Update
DeleteButton
Delete
데이터베이스에 새 레코드를 삽입하는 코드를 추가하려면
InsertButton을 두 번 클릭하여 클릭 이벤트에 대한 이벤트 처리기를 만들고 코드 편집기에서 폼을 엽니다.
InsertButton_Click 이벤트 처리기를 다음 코드로 바꾸십시오.
Private Sub InsertButton_Click() Handles InsertButton.Click Dim newRegionID As Integer = 5 Dim newRegionDescription As String = "NorthEastern" Try RegionTableAdapter1.Insert(newRegionID, newRegionDescription) Catch ex As Exception MessageBox.Show("Insert Failed") End Try RefreshDataset() End Sub Private Sub RefreshDataset() Me.RegionTableAdapter1.Fill(Me.NorthwindDataSet1._Region) End Sub
private void InsertButton_Click(object sender, EventArgs e) { Int32 newRegionID = 5; String newRegionDescription = "NorthEastern"; try { regionTableAdapter1.Insert(newRegionID, newRegionDescription); } catch (Exception ex) { MessageBox.Show("Insert Failed"); } RefreshDataset(); } private void RefreshDataset() { this.regionTableAdapter1.Fill(this.northwindDataSet1.Region); }
데이터베이스의 레코드를 업데이트하는 코드를 추가하려면
UpdateButton을 두 번 클릭하여 클릭 이벤트에 대한 이벤트 처리기를 만들고 코드 편집기에서 폼을 엽니다.
UpdateButton_Click 이벤트 처리기를 다음 코드로 바꾸십시오.
Private Sub UpdateButton_Click() Handles UpdateButton.Click Dim newRegionID As Integer = 5 Try RegionTableAdapter1.Update(newRegionID, "Updated Region Description", 5, "NorthEastern") Catch ex As Exception MessageBox.Show("Update Failed") End Try RefreshDataset() End Sub
private void UpdateButton_Click(object sender, EventArgs e) { Int32 newRegionID = 5; try { regionTableAdapter1.Update(newRegionID, "Updated Region Description", 5, "NorthEastern"); } catch (Exception ex) { MessageBox.Show("Update Failed"); } RefreshDataset(); }
데이터베이스에서 레코드를 삭제하는 코드를 추가하려면
DeleteButton을 두 번 클릭하여 클릭 이벤트에 대한 이벤트 처리기를 만들고 코드 편집기에서 폼을 엽니다.
DeleteButton_Click 이벤트 처리기를 다음 코드로 바꾸십시오.
Private Sub DeleteButton_Click() Handles DeleteButton.Click Try RegionTableAdapter1.Delete(5, "Updated Region Description") Catch ex As Exception MessageBox.Show("Delete Failed") End Try RefreshDataset() End Sub
private void DeleteButton_Click(object sender, EventArgs e) { try { regionTableAdapter1.Delete(5, "Updated Region Description"); } catch (Exception ex) { MessageBox.Show("Delete Failed"); } RefreshDataset(); }
응용 프로그램 실행
응용 프로그램을 실행하려면
F5 키를 눌러 응용 프로그램을 실행합니다.
삽입 단추를 클릭하여 새 레코드가 표에 나타나는지 확인합니다.
업데이트 단추를 클릭하여 레코드가 표에서 업데이트되는지 확인합니다.
삭제 단추를 클릭하여 레코드가 표에서 삭제되는지 확인합니다.
다음 단계
응용 프로그램 요구 사항에 따라 데이터 바인딩된 폼을 만든 후 몇 단계를 더 수행해야 할 수도 있습니다. 이 연습에서 보완할 수 있는 사항은 다음과 같습니다.
폼에 검색 기능을 추가합니다. 자세한 내용은 방법: Windows Forms 응용 프로그램에 매개 변수가 있는 Query 추가를 참조하십시오.
데이터 소스 창에서 마법사로 데이터 집합 구성을 선택하여 추가 테이블을 데이터 집합에 추가합니다. 관련 노드를 폼으로 끌어 와 관련 데이터를 표시하는 컨트롤을 추가할 수 있습니다. 자세한 내용은 방법: Windows Forms 응용 프로그램에서 관련 데이터 표시를 참조하십시오.
참고 항목
작업
방법: TableAdapter를 사용하여 데이터베이스에 직접 액세스
개념
Visual Studio에서 데이터에 Windows Forms 컨트롤 바인딩