我在尝试创建登录表单时遇到问题,但是 else 语句似乎被忽略了。
如何编写此代码提取,以便在将不正确的数据放入文本框中时显示消息框?(所有数据库均已正确设置)。
try
{
sc.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("select * from StudentRecords where ID = '" + txtBoxUsername.Text + "' ", sc); //where ID = '" + txtBoxUsername.Text + "' and DOB = '" + textBoxPassword.Text + "'
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
if (txtBoxUsername.Text == (myReader["ID"].ToString()) && textBoxPassword.Text == (myReader["DOB"].ToString()))
{
LoginSuccessForm loginfrm = new LoginSuccessForm();
loginfrm.Show();
this.Hide();
}
else if (txtBoxUsername.Text != (myReader["ID"].ToString()) || textBoxPassword.Text != (myReader["DOB"].ToString()))
{
MessageBox.Show("Incorrect Password and/or Username", "Error");
break;
}
}
sc.Close();
}
我曾尝试将消息框放在 while 循环之外,但这并不能以预期的方式工作。(下面的 try 方法是一个问题,我没有包含它以节省空间)。
话虽如此,它似乎也只选择了数据库中的第一个用户。任何线索或指导将不胜感激!