[英]Validate user input 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");
}
假设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默认为Integer。 将其更改为“无”可能会有所帮助。
可以使用如下形式:
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox1.Text = string.Concat(textBox1.Text.Where(char.IsLetter));
}
这不会显示任何错误; 除字母以外的任何内容都将被删除。
int result;
if (int.TryParse(input.Text, out result))
{
// it's a valid integer => you could use the result variable here
}
或者如果您想在按键中进行验证,
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
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.