2014-03-19 2 views
0

사용자가 텍스트 필드에 숫자를 입력했는지 어떻게 확인할 수 있습니까? 그들이 텍스트 이외의 데이터를 입력하면 오류 메시지를 표시하고 다시 입력을 받아야합니다. 어떤 도움을 주시면 감사하겠습니다. 감사.사용자 입력 유효성 검사 C#

여기에 코드입니다 :

myCmd.CommandText = "INSERT INTO Guest(Guest_First_Name, Guest_Surname, Guest_Address, Guest_Postcode, Guest_Telephone, [Guest_E-mail])" + "VALUES(@Fname, @Sname, @Address, @Postcode, @Telephone, @Email)"; 

     myCmd.Parameters.Add("@Fname", OleDbType.Char).Value = firstName.Text; 
     myCmd.Parameters.Add("@Sname", OleDbType.Char).Value = surname.Text; 
     myCmd.Parameters.Add("@Address", OleDbType.Char).Value = address.Text; 
     myCmd.Parameters.Add("@Postcode", OleDbType.Char).Value = postcode.Text; 
     myCmd.Parameters.Add("@Telephone", OleDbType.Char).Value = telephone.Text; 
     myCmd.Parameters.Add("@Email", OleDbType.Char).Value = email.Text; 

     connect.Open(); 
     int rowsChanged = myCmd.ExecuteNonQuery(); 
     connect.Close(); 

     if (rowsChanged == 1) 
     { 
      MessageBox.Show("Record Inserted"); 
     } 
     else 
     { 
      MessageBox.Show("Error: Record Not Inserted"); 
     } 
+0

을 검증이나 키 누르기 이벤트를 기록 할 경우 –

+0

http://msdn.microsoft.com/en-us/ library/system.windows.forms.errorprovider (v = vs.110) .aspx –

+0

@LIoyd 숫자는 내가 텍스트로 인식하지 못하는 유일한 문자는 아닙니다. 실제로 나는'[a-z] [A-Z] '또는 무엇인가를 검사하기 위해 정규식과 같은 것을 필요로한다고 생각합니다. – Leron

답변

2

는에 textField 필드의 이름입니다 가정 할 수 있습니다. 그럼 당신은 C#으로 다음을 수행 할 수 -

int num=0; 
if(!(Int32.TryParse(textField,out num))) 
{ 
Console.WriteLine("Error"); 
return; // return an error at this point 
} 

은 또한 다음 (테스트되지 않은)을 시도 할 수 있습니다 : - 첫 번째 예에서

int num=0; 
if(!(Int32.TryParse(textField,NumberStyles.None,CultureInfo.InvariantCulture,out num))) 
{ 
Console.WriteLine("Error"); 
return; // return an error at this point 
} 

, 정수에 NumberStyles 기본값. None으로 변경하면 도움이 될 수 있습니다.

+0

'Int'로 파싱 할 수없는 모든 것이 텍스트라는 것을 나는 말하지 않을 것이다. – Leron

+0

답변을 주셔서 감사합니다. 그 방법은 부분적으로 작동하고 있습니다. 번호가 매겨지면 편지를 받아 들여 데이터베이스에 삽입합니다 :/어떻게하면 멈출까요? – Lloyd

+0

당신이주고있는 입력은 무엇입니까? – Max

1

는 다음과 같이 사용할 수 있습니다이 오류를 표시하지 것

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    textBox1.Text = string.Concat(textBox1.Text.Where(char.IsLetter)); 
} 

을; 글자 이외의 것은 삭제 될뿐입니다.

0
int result; 
if (int.TryParse(input.Text, out result)) 
{ 
    // it's a valid integer => you could use the result variable here 
} 

또는, 키를 누를에 Lioyd..Use 서버 측 유효성 검사 컨트롤 @

private void txtbox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == '') 
    { 
     e.Handled = false; //Do not reject the input 
    } 
    else 
    { 
     e.Handled = true; //Reject the input 
    } 
}