簡體   English   中英

驗證用戶輸入的C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM