当用户未输入任何内容时,不会显示错误消息。它什么都不做。我把别消息放在了错误的地方吗?
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");
}
}
}
}
答案 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();
}
}