다음을 통해 공유


연습: 데이터 집합에 유효성 검사 추가

이 연습에서는 데이터 집합의 데이터를 변경할 때 데이터 유효성을 검사하는 방법을 보여줍니다. 데이터에 대해 유효성 검사를 수행하는 위치는 응용 프로그램의 요구 사항에 따라 다릅니다. 이 연습에서는 개별 열의 값을 변경하는 동안 데이터의 유효성을 검사합니다. 이 연습에서는 ColumnChanging 이벤트를 사용하여 레코드에 적절한 값이 입력되는지를 확인합니다. 값이 올바르지 않으면 ErrorProvider 컨트롤이 사용자에게 표시됩니다.

예제에서는 데이터 집합 디자이너를 사용하여 데이터 집합에 대해 partial 클래스를 만드는 방법도 보여줍니다. 사용자는 partial 클래스에서 Visual Studio 생성 데이터 집합의 기능을 확장하는 코드를 추가할 수 있습니다. 데이터 집합을 다시 생성해도 코드를 덮어쓰지는 않습니다.

참고

일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Customizing Development Settings in Visual Studio을 참조하십시오.

이 연습에서 설명하는 작업은 다음과 같습니다.

  • Windows 응용 프로그램 프로젝트를 만듭니다.

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

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

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

  • 데이터 집합의 기능을 확장하는 partial 클래스를 만듭니다.

  • OrderDetails 테이블의 ColumnChanging 이벤트에 대한 이벤트 처리기를 만듭니다.

  • Quantity 열에 0보다 큰 값이 포함되어 있는지를 확인하는 유효성 검사를 추가합니다.

  • 데이터 바인딩된 컨트롤에 잘못된 값이 포함되어 있음을 사용자에게 알리는 ErrorProvider 구성 요소(Windows Forms)를 표시합니다.

사전 요구 사항

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

새 Windows 응용 프로그램 만들기

새 Windows 응용 프로그램 프로젝트를 만들려면

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

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

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

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

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

데이터 소스를 만들려면

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

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

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

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

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

      또는

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

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

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

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

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

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

데이터 바인딩된 컨트롤 만들기

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

  1. 데이터 소스 창에서 OrderDetails 테이블을 선택합니다.

  2. 테이블의 컨트롤 목록에서 Details를 선택합니다.

  3. Order Details 노드를 데이터 소스 창에서 Form1으로 끌어 옵니다.

    설명 레이블이 있는 데이터 바인딩된 컨트롤이 레코드 탐색을 위한 도구 모음인 BindingNavigator와 함께 폼에 나타납니다. 설명 레이블이 있는 데이터 바인딩된 컨트롤이 레코드 탐색을 위한 도구 모음인 BindingNavigator와 함께 폼에 나타납니다. NorthwindDataSet, Order_DetailsTableAdapter, BindingSourceBindingNavigator가 구성 요소 트레이에 나타납니다.

폼에 ErrorProvider 컨트롤 추가

ErrorProvider 컨트롤을 구성하려면

  1. 도구 상자에서 Form1ErrorProvider를 끌어 옵니다.

  2. 속성 창에서 ErrorProviderDataSource 속성을 Order_DetailsBindingSource로 설정합니다.

    참고

    DataMember 속성은 설정하지 않습니다.

ColumnChanging 이벤트 처리기 만들기

유효성 검사 이벤트 처리기를 만들려면

  1. 솔루션 탐색기에서 NorthwindDataSet.xsd 파일을 두 번 클릭하여 데이터 집합 디자이너에서 NorthwindDataSet를 엽니다.

  2. OrderDetails 테이블에서 Quantity 열을 두 번 클릭하여 OrderDetailsDataTable_ColumnChanging 이벤트 처리기를 만듭니다. C#에서는 데이터 테이블의 partial 클래스만 만들어집니다.

    참고

    제목 표시줄에서 테이블 이름인 Order Details를 두 번 클릭하면 RowChanging 이벤트에 대한 이벤트 처리기가 만들어집니다.

  3. e.ProposedValue에 0보다 큰 값이 포함되어 있는지를 확인하는 코드를 추가합니다. 제안된 값이 0 이하이면 오류가 있음을 나타내도록 열을 설정합니다.

    다음 코드를 열 변경 이벤트 처리기의 사용자 코드를 여기에 추가하십시오. 주석 아래에 붙여 넣습니다.

    If CType(e.ProposedValue, Short) <= 0 Then
            e.Row.SetColumnError(e.Column, "Quantity must be greater than 0")
        Else
            e.Row.SetColumnError(e.Column, "")
    End If
    
    // C#
    // Add the following code 
    // to the partial class.
        public override void EndInit()
        {
            base.EndInit();
            Order_DetailsRowChanging += TestRowChangeEvent;
        }
    
        public void TestRowChangeEvent(object sender, Order_DetailsRowChangeEvent e)
        {
            if ((short)e.Row.Quantity <= 0)
            {
                e.Row.SetColumnError("Quantity", "Quantity must be greater than 0");
            }
            else
            {
                e.Row.SetColumnError("Quantity", "");
            }
        }
    

응용 프로그램 테스트

응용 프로그램을 테스트하려면

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

  2. 수량 텍스트 상자의 값을 0으로 변경합니다.

  3. Tab 키를 눌러 포커스를 텍스트 상자 외부로 이동합니다.

    오류 공급자 아이콘이 표시됩니다.

  4. 오류 공급자 위에 마우스 포인터를 놓고 메시지를 확인합니다.

다음 단계

응용 프로그램 요구 사항에 따라 유효성 검사 기능을 추가한 후 몇 단계를 더 수행해야 할 수도 있습니다. 이 연습에서 보완할 수 있는 사항은 다음과 같습니다.

참고 항목

개념

Visual Studio에서 데이터에 Windows Forms 컨트롤 바인딩

데이터를 받기 위해 응용 프로그램 준비

데이터를 응용 프로그램으로 페치

Visual Studio에서 데이터에 컨트롤 바인딩

응용 프로그램에서 데이터 편집

데이터 유효성 검사

데이터 저장

기타 리소스

데이터 연습

Visual Studio에서 데이터에 연결