我在应用程序中的登录例程不会将我定向到主窗体
本文关键字:窗体 应用程序 登录 例程 | 更新日期: 2023-09-27 18:37:07
>我正在使用VS2010构建Windows表单应用程序。我想读取用户标识和密码,并使用数据库检查它们的有效性。如果找到合适的匹配项,我想将用户定向到主窗体。当我输入正确的凭据时,我的代码当前没有定向。可能是什么原因?
string connectionstring = "Data Source=localhost;Initial Catalog=HMS;Persist Security Info=True;User ID=Developer;Password=abc@123";
SqlConnection connection = new SqlConnection(connectionstring);
string SelectStatement = "SELECT * FROM Users where UserID = '@UserID' and Password = '@password'";
SqlCommand insertcommand = new SqlCommand(SelectStatement, connection);
insertcommand.Parameters.AddWithValue("@UserID", textBox1.Text);
insertcommand.Parameters.AddWithValue("@password", textBox2.Text);
SqlDataReader reader;
try
{
connection.Open();
reader = insertcommand.ExecuteReader();
while (reader.Read())
{
string userid = reader["UserID"].ToString();
string pass = reader["Password"].ToString();
if (userid == textBox1.Text.ToString() && pass == textBox2.Text.ToString()) // login successful
{
Mainform main = new Mainform();
this.Hide();
main.Show();
}
else
{
MessageBox.Show("Invalid Username or Password!");
}
}//end while
reader.Close();
}
catch (Exception ex)
{
throw ex;
}//end catch
finally
{
connection.Close();
}
首先,不要将密码作为原始文本存储在数据库中。 那只是自找麻烦。 您应该在数据库中存储一个加盐哈希,并在客户端中计算哈希并进行比较。
第二,尝试主。ShowDialog() 让你的主窗体保持熬夜。