다음을 통해 공유


연습: TableAdapter DBDirect 메서드를 사용하여 데이터 저장

 

게시 날짜: 2016년 4월

이 연습에서는 TableAdapter의 DBDirect 메서드를 사용하여 데이터베이스에 대해 SQL 문을 직접 실행하는 자세한 지침을 제공합니다. TableAdapter의 DBDirect 메서드는 데이터베이스 업데이트에 대한 상세 제어 수준을 제공합니다. 이러한 메서드를 사용하면 UPDATE, INSERT 및 DELETE 문을 모두 한 번의 호출에서 수행하는 오버로드된 Update 메서드를 사용하는 대신 응용 프로그램에 필요한 개별 Insert, UpdateDelete 메서드를 호출하여 특정 SQL 문과 저장 프로시저를 실행할 수 있습니다.

이 연습에서는 다음 작업을 수행하는 방법을 배웁니다.

  • Windows 응용 프로그램을 만듭니다.

  • 데이터 소스 구성 마법사를 사용하여 데이터 집합을 만들고 구성합니다.

  • 데이터 소스 창에서 항목을 끌어오는 경우 폼에 만들어질 컨트롤을 선택합니다. 자세한 내용은 데이터 소스 창에서 끌어올 때 만들 컨트롤 설정을 참조하십시오.

  • 데이터 소스 창에서 폼으로 항목을 끌어 데이터 바인딩된 폼을 만듭니다.

  • 데이터베이스에 직접 액세스하여 데이터베이스에 대해 삽입, 업데이트 및 삭제를 직접 수행하는 메서드를 추가합니다.

사전 요구 사항

이 연습을 완료하려면 다음 사항이 필요합니다.

Windows 응용 프로그램 만들기

첫 번째 단계에서는 Windows 응용 프로그램을 만듭니다.

새 Windows 프로젝트를 만들려면

  1. Visual Studio의 파일 메뉴에서 새 프로젝트를 만듭니다.

  2. 프로젝트 이름을 TableAdapterDbDirectMethodsWalkthrough로 지정합니다.

  3. Windows 응용 프로그램을 선택하고 확인을 클릭합니다. 자세한 내용은 클라이언트 응용 프로그램을 참조하십시오.

    TableAdapterDbDirectMethodsWalkthrough 프로젝트가 만들어져 솔루션 탐색기에 추가됩니다.

데이터베이스에서 데이터 소스 만들기

이 단계에서는 데이터 소스 구성 마법사를 사용하여 Northwind 샘플 데이터베이스의 Region 테이블을 기반으로 하는 데이터 소스를 만듭니다. 연결을 만들려면 Northwind 샘플 데이터베이스에 액세스해야 합니다. Northwind 샘플 데이터베이스를 설정하는 방법에 대한 자세한 내용은 방법: 샘플 데이터베이스 설치를 참조하세요.

데이터 소스를 만들려면

  1. 데이터 메뉴에서 데이터 소스 표시를 클릭합니다.

  2. 데이터 소스 창에서 새 데이터 소스 추가를 선택하여 데이터 소스 구성 마법사를 시작합니다.

  3. 데이터 소스 형식 선택 페이지에서 데이터베이스를 선택하고 다음을 클릭합니다.

  4. 데이터 연결 선택 페이지에서 다음 중 한 가지를 수행합니다.

    • Northwind 샘플 데이터베이스에 대한 데이터 연결이 드롭다운 목록에 표시되면 해당 연결을 선택합니다.

      또는

    • 새 연결을 선택하여 연결 추가/수정 대화 상자를 시작합니다.

  5. 데이터베이스에 암호가 필요하면 중요한 데이터를 포함하는 옵션을 선택하고 다음을 클릭합니다.

  6. 응용 프로그램 구성 파일에 연결 문자열 저장 페이지에서 다음을 클릭합니다.

  7. 데이터베이스 개체 선택 페이지에서 테이블 노드를 확장합니다.

  8. Region 테이블을 선택하고 마침을 클릭합니다.

    NorthwindDataSet가 프로젝트에 추가되고 Region 테이블이 데이터 소스 창에 나타납니다.

폼에 데이터를 표시하기 위한 컨트롤 추가

데이터 소스 창에서 폼으로 항목을 끌어 데이터 바인딩된 컨트롤을 만듭니다.

Windows Form에서 데이터 바인딩된 컨트롤을 만들려면

개별 TableAdapter DbDirect 메서드를 호출하는 단추를 추가하려면

  1. Button 컨트롤 3개를 도구 상자에서 Form1RegionDataGridView 아래로 끌어 옵니다.

  2. 각 단추에 대해 다음 이름텍스트 속성을 설정합니다.

    이름 Text
    InsertButton Insert
    UpdateButton 업데이트
    DeleteButton 삭제

데이터베이스에 새 레코드를 삽입하는 코드를 추가하려면

  1. InsertButton을 두 번 클릭하여 클릭 이벤트에 대한 이벤트 처리기를 만들고 코드 편집기에서 폼을 엽니다.

  2. InsertButton_Click 이벤트 처리기를 다음 코드로 바꿉니다.

            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);
            }
    
        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
    

데이터베이스에서 레코드를 업데이트하는 코드를 추가하려면

  1. UpdateButton을 두 번 클릭하여 클릭 이벤트에 대한 이벤트 처리기를 만들고 코드 편집기에서 폼을 엽니다.

  2. UpdateButton_Click 이벤트 처리기를 다음 코드로 바꿉니다.

            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();
            }
    
        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
    

데이터베이스에서 레코드를 삭제하는 코드를 추가하려면

  1. DeleteButton을 두 번 클릭하여 클릭 이벤트에 대한 이벤트 처리기를 만들고 코드 편집기에서 폼을 엽니다.

  2. DeleteButton_Click 이벤트 처리기를 다음 코드로 바꿉니다.

            private void DeleteButton_Click(object sender, EventArgs e)
            {
                try
                {
                    regionTableAdapter1.Delete(5, "Updated Region Description");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Delete Failed");
                }
                RefreshDataset();
            }
    
        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
    

응용 프로그램 실행

응용 프로그램을 실행하려면

  • F5 키를 눌러 응용 프로그램을 실행합니다.

  • 삽입 단추를 클릭하고 새 레코드가 표에 표시되는지 확인합니다.

  • 업데이트 단추를 클릭하고 표에 레코드가 업데이트되었는지 확인합니다.

  • 삭제 단추를 클릭하고 표에서 레코드가 제거되었는지 확인합니다.

다음 단계

응용 프로그램 요구 사항에 따라 데이터 바인딩된 폼을 만든 후 몇 단계를 더 수행해야 할 수도 있습니다. 이 연습에서 보완할 수 있는 사항은 다음과 같습니다.

참고 항목

TableAdapter 개요
방법: TableAdapter를 사용하여 데이터베이스에 직접 액세스
방법: TableAdapter 쿼리 만들기
방법: 개체에서 데이터베이스로 데이터 저장
Visual Studio에서 데이터에 Windows Forms 컨트롤 바인딩
Visual Studio에서 데이터에 연결
데이터를 받기 위해 응용 프로그램 준비
데이터를 응용 프로그램으로 페치
Visual Studio에서 데이터에 컨트롤 바인딩
응용 프로그램에서 데이터 편집
데이터 유효성 검사
데이터 저장