방법: ASP.NET 서버 컨트롤에서 데이터베이스의 값에 대한 유효성 검사

업데이트: 2007년 11월

사용자가 입력한 내용의 유효성을 데이터베이스에 대해 검사하여 사용자가 인식된 값을 입력했는지 확인할 수 있습니다. 이렇게 하려면 데이터베이스에서 일치하는 데이터를 찾는 코드를 CustomValidator 컨트롤에 써야 합니다.

데이터베이스에 대해 유효성을 검사하려면

  1. CustomValidator 컨트롤을 페이지에 추가하고 다음 속성을 설정합니다.

    속성

    설명

    ControlToValidate

    유효성을 검사할 컨트롤의 ID입니다.

    ErrorMessage, Text, Display

    유효성 검사에 실패한 경우 나타날 오류의 텍스트와 위치를 지정하는 속성입니다. 자세한 내용은 방법: ASP.NET 서버 컨트롤의 유효성 검사 오류 메시지 표시 제어를 참조하십시오.

  2. CustomValidator 컨트롤의 ServerValidate 이벤트에 대한 이벤트 처리기를 만듭니다. 데이터베이스를 찾아 사용자가 입력한 내용을 데이터 집합에 대해 검사하는 코드를 이벤트 처리기에 추가합니다.

    참고:

    사용자가 컨트롤을 비워 두면 컨트롤이 비교 유효성 검사를 통과합니다. 사용자가 값을 반드시 입력하게 하려면 RequiredFieldValidator 컨트롤도 추가해야 합니다. 자세한 내용은 방법: ASP.NET 서버 컨트롤의 필수 입력 유효성 검사를 참조하십시오.

  3. ASP.NET 웹 페이지 코드에 유효성 검사 테스트를 추가합니다. 자세한 내용은 방법: 프로그래밍 방식으로 ASP.NET 서버 컨트롤 유효성 검사를 참조하십시오.

    다음 코드 예제에서는 사용자가 입력한 내용을 테이블에서 찾아 유효성을 검사하는 방법을 보여 줍니다. 이 경우 사용자는 테이블에 저장된 전자 메일 주소에 대해 유효성이 검사된 전자 메일 주소를 입력했습니다. 사용자가 입력한 내용을 검사하는 사용자 지정 유효성 검사 논리에서는 페이지에서 사용할 수 있는 데이터 집합에 속하는 테이블의 행을 순환하여 검색합니다.

    Private Sub CustomValidator1_ServerValidate(ByVal _
       source As System.Object, ByVal args As _
       System.Web.UI.WebControls.ServerValidateEventArgs) _
       Handles CustomValidator1.ServerValidate
    
        Dim dv As DataView
        Dim dataset11 As New Data.DataSet
    
        dv = dataset11.Tables(0).DefaultView
    
        Dim datarow As DataRowView
        Dim txtEmail As String
        args.IsValid = False    ' Assume False
        ' Loop through table and compare each record against user's entry
        For Each datarow In dv
            ' Extract e-mail address from the current row
            txtEmail = datarow.Item("Alias").ToString()
            ' Compare e-mail address against user's entry
            If txtEmail = args.Value Then
                args.IsValid = True
                Exit For
            End If
        Next
    End Sub
    
    private void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
    {
        DataView dv;
        DataSet dataSet11 = new DataSet();
    
        dv = dataSet11.Tables[0].DefaultView;
        string txtEmail;
        args.IsValid = false;    // Assume False
        // Loop through table and compare each record against user's entry
        foreach (DataRowView datarow in dv)
        {
            // Extract e-mail address from the current row
            txtEmail = datarow["Alias "].ToString();
            // Compare e-mail address against user's entry
            if (txtEmail == args.Value)
            {
                args.IsValid = true;
            }
        }
    }
    

참고 항목

개념

ASP.NET 서버 컨트롤의 유효성 검사 형식

기타 리소스

유효성 검사 ASP.NET 컨트롤