Share via


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

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

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

참고

표시되는 대화 상자와 메뉴 명령은 활성 설정이나 버전에 따라 도움말에서 설명하는 것과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 설정에 대한 작업을 참조하십시오.

이 연습에서 수행할 작업은 다음과 같습니다.

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

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

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

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

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

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

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

  • ErrorProvider 구성 요소(Windows Forms)를 표시하여 데이터 바인딩된 컨트롤에 잘못된 값이 있음을 사용자에게 알립니다.

사전 요구 사항

이 연습을 완료하려면 다음과 같은 요건이 필요합니다.

새 Windows 응용 프로그램 만들기

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

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

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

  3. Windows 응용 프로그램을 선택하고 확인을 클릭합니다. 자세한 내용은 Windows 기반 응용 프로그램 만들기를 참조하십시오.

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

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

데이터 소스를 만들려면

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

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

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

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

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

      또는

    • 새 연결을 선택하여 연결 추가/수정 대화 상자를 시작합니다. 자세한 내용은 연결 추가/수정 대화 상자(일반)를 참조하십시오.

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

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

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

  8. Order Details 테이블을 선택한 다음 마침을 클릭합니다.

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

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

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

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

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

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

    레코드 탐색에 사용되는 도구 스트립(BindingNavigator)과 설명 레이블이 있는 데이터 바인딩된 컨트롤이 폼에 나타납니다. 레코드 탐색에 사용되는 도구 스트립(BindingNavigator)과 설명 레이블이 있는 데이터 바인딩된 컨트롤이 폼에 나타납니다. NorthwindDataSet, Order_DetailsTableAdapter, BindingSourceBindingNavigator가 구성 요소 트레이에 나타납니다.

폼에 ErrorProvider 컨트롤 추가

ErrorProvider 컨트롤을 구성하려면

  1. ErrorProvider도구 상자에서 Form1으로 끌어서 놓습니다.

  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. Quantity 텍스트 상자의 값을 0으로 변경합니다.

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

    오류 공급자 아이콘이 나타납니다.

  4. 오류 공급자 위에 마우스 포인터를 올려 메시지를 봅니다.

다음 단계

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

참고 항목

개념

데이터 응용 프로그램 개발의 새로운 기능

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

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

기타 리소스

데이터 연습

Visual Studio에서 데이터에 연결

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

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

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

데이터 유효성 검사

데이터 저장