不会显示验证消息

时间:2016-08-15 01:41:42

标签: c#

当用户未输入任何内容时,不会显示错误消息。它什么都不做。我把别消息放在了错误的地方吗?

  private void btnLogin2_Click(object sender, EventArgs e)
        {
          
            if (txtLogin2.Text != "" && txtPassword2.Text != "")
            {
                int AID = Convert.ToInt32(txtLogin2.Text);
                Entities2 db = new Entities2();
                Administrator admin = db.Administrators.Where(x => x.AID == AID && x.Password == txtPassword2.Text).SingleOrDefault();
                if (admin != null)
                {
                    Admin admini = new Admin();
                    admini.ShowDialog();
                }
                else
                {
                    int value;
                    if (int.TryParse(txtLogin2.Text, out value)) {
                        MessageBox.Show("User ID not in valid format");
                    }
                    if (txtLogin2.Text == "" )
                    {
                        MessageBox.Show("Please enter a User ID");
                    }
                    if (txtPassword2.Text == "") {
                        MessageBox.Show("Please enter a valid Password");
                    }
                }
            }
        }

2 个答案:

答案 0 :(得分:2)

  

当用户什么都不输入时

然后第一个if语句的计算结果为false:

if (txtLogin2.Text != "" && txtPassword2.Text != "")

这意味着不会到达此函数中的任何代码。您可能希望将这些放在函数的开头:

if (txtLogin2.Text == "" )
{
    MessageBox.Show("Please enter a User ID");
}
if (txtPassword2.Text == "") {
    MessageBox.Show("Please enter a valid Password");
}
if (txtLogin2.Text != "" && txtPassword2.Text != "")
{
    //... the rest of the code, minus the if statements above
}

答案 1 :(得分:1)

只是你的其他人在错误的地方,如果两个文本框都不为空,你就进入检查状态。尝试添加检查并重新排列如下。

  private void btnLogin2_Click(object sender, EventArgs e)
        {
            int value;
            if (int.TryParse(txtLogin2.Text, out value)) {
                        MessageBox.Show("User ID not in valid format");
            }
            if (txtLogin2.Text == "" )
            {
                        MessageBox.Show("Please enter a User ID");
            }
            if (txtPassword2.Text == "") {
                        MessageBox.Show("Please enter a valid Password");
            }
                int AID = Convert.ToInt32(txtLogin2.Text);
                Entities2 db = new Entities2();
                Administrator admin = db.Administrators.Where(x => x.AID == AID && x.Password == txtPassword2.Text).SingleOrDefault();
                if (admin != null)
                {
                    Admin admini = new Admin();
                    admini.ShowDialog();
                }
        }