다음을 통해 공유


.NET Framework 응용 프로그램에서 TableAdapter DBDirect 메서드를 사용하여 데이터 저장

참고 항목

데이터 집합 및 관련 클래스는 2000년대 초반에 적용된 레거시 .NET Framework 기술로, 응용 프로그램이 데이터베이스에서 연결이 끊어진 동안 응용 프로그램이 메모리의 데이터로 작업할 수 있도록 합니다. 사용자가 데이터를 수정하고 변경 내용을 다시 데이터베이스에 유지할 수 있도록 하는 애플리케이션에 특히 유용합니다. 데이터 세트는 매우 성공적인 기술로 입증되었지만 새 .NET 애플리케이션은 Entity Framework Core를 사용하는 것이 좋습니다. Entity Framework는 표 형식 데이터를 개체 모델로 사용하는 더 자연스러운 방법을 제공하며 더 단순한 프로그래밍 인터페이스를 제공합니다.

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

이 자습서에서는 다음과 같은 작업을 수행하는 방법을 알아봅니다.

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

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

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

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

필수 조건

이 자습서의 단계는 .NET Framework Windows Forms 애플리케이션에서 작동합니다.

이 자습서에서는 SQL Server Express LocalDB 및 Northwind 샘플 데이터베이스를 사용합니다.

  1. SQL Server Express LocalDB가 없는 경우 SQL Server Express 다운로드 페이지 또는 Visual Studio 설치 관리자를 통해 설치합니다. Visual Studio 설치 관리자에서 데이터 스토리지 및 처리 워크로드의 일부로 또는 개별 구성 요소로 SQL Server Express LocalDB를 설치할 수 있습니다.

  2. 다음 단계에 따라 Northwind 샘플 데이터베이스를 설치합니다.

    1. Visual Studio에서 SQL Server 개체 탐색기 창을 엽니다. (SQL Server 개체 탐색기는 Visual Studio 설치 관리자에서 데이터 스토리지 및 처리 워크로드의 일부로 설치됩니다.) SQL Server 노드를 확장합니다. LocalDB 인스턴스를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 선택합니다.

      쿼리 편집기 창이 열립니다.

    2. Northwind Transact-SQL 스크립트를 클립보드에 복사합니다. 이 T-SQL 스크립트는 Northwind 데이터베이스를 처음부터 만들고 데이터를 채웁니다.

    3. T-SQL 스크립트를 쿼리 편집기에 붙여넣은 다음, 실행 단추를 선택합니다.

      잠시 후 쿼리 실행이 완료되고 Northwind 데이터베이스가 만들어집니다.

Windows Forms 애플리케이션 만들기

첫 번째 단계는 Windows Forms 앱(.NET Framework)을 만드는 것입니다. C# 또는 Visual Basic을 사용하여 Windows Forms 앱 프로젝트 형식을 사용하여 프로젝트를 만듭니다.

참고 항목

이 자습서의 코드는 C# 및 Visual Basic에서 사용할 수 있습니다. 이 페이지의 코드 언어를 C#과 Visual Basic 간에 전환하려면 오른쪽 페이지의 맨 위에 있는 코드 언어 전환기를 사용합니다.

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

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

데이터 소스를 만들려면

  1. 데이터 메뉴에서 데이터 원본 표시를 선택합니다.

    데이터 원본 창이 열립니다.

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

  3. 데이터 소스 형식 선택 화면에서 데이터베이스를 선택하고 다음을 선택합니다.

  4. 데이터 연결 선택 화면에서 다음 중 하나를 수행합니다.

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

      또는

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

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

  6. 애플리케이션 구성 파일에 연결 문자열 저장 화면에서 다음을 선택합니다.

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

  8. Region 테이블을 선택한 다음, 마침을 선택합니다.

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

양식에 컨트롤을 추가하여 데이터 표시

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

Windows Form에 데이터 바인딩 컨트롤을 만들려면 데이터 소스 창에서 양식으로 주 Region 노드를 끌어옵니다.

DataGridView 컨트롤과 레코드 탐색에 사용되는 도구 모음인 BindingNavigator가 폼에 나타납니다. NorthwindDataSet, RegionTableAdapter, BindingSource, BindingNavigator가 구성 요소 트레이에 표시됩니다.

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

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

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

    이름 텍스트
    InsertButton 삽입
    UpdateButton Update
    DeleteButton Delete

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

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

    참고 항목

    생성된 코드에서 Visual Studio 버전 및 사용한 프로젝트 템플릿에 따라 이 코드에 사용된 regionTableAdapter 또는 regionTableAdapter1과 같은 변수 이름 뒤에 1이 있을 수도 있고 없을 수도 있습니다. 모든 곳에서 올바른 이름이 사용되도록 코드에서 수정합니다. Visual Studio에서는 이름이 올바르지 않은 곳에 빨간색 물결선이 표시됩니다.

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

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

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

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

애플리케이션 실행

  • F5 키를 선택하여 애플리케이션을 실행합니다.

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

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

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

다음 단계

애플리케이션 요구 사항에 따라 데이터 바인딩 양식을 만든 후 몇 단계를 더 수행해야 할 수 있습니다. 이 자습서에서 보완할 수 있는 사항은 다음과 같습니다.

  • 폼에 검색 기능을 추가합니다.

  • 데이터 원본 창에서 마법사로 데이터 세트 구성을 선택하여 추가 테이블을 데이터 세트에 추가합니다. 관련 노드를 폼으로 끌어 관련 데이터를 표시하는 컨트롤을 추가할 수 있습니다. 자세한 내용은 데이터 세트의 관계를 참조하세요.