即使控制台显示数据库中的匹配值,窗口上显示错误的输出也是如此
本文关键字:显示 输出 错误 窗口 数据库 控制台 | 更新日期: 2023-09-27 18:34:54
我附上了输出屏幕的屏幕截图。我的代码给了我一个不寻常的缺陷。这是我正在开发的登录程序。问题是,当我调试和运行代码时,将正确的输入输入到与数据库中的条目完全相同的指定字段中。控制台正在正确获取正确的值,但我得到的输出是登录失败。我不明白为什么会发生这种情况,有人可以指导我!`
private void button1_Click(object sender, EventArgs e)
{
String s1 = textBox1.Text;
String s2 = textBox2.Text;
SqlConnection cnn = new SqlConnection("Data Source=.''SQLEXPRESS;Initial Catalog=register;Integrated Security=True");
String sql = ("select Userid,Password from reg where Userid='" + s1 + "' and Password='" + s2 + "' ");
cnn.Open();
String userid="";
String password="";
SqlCommand cmd = new SqlCommand(sql,cnn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while(reader.Read())
{
userid = reader.GetString(0);
password = reader.GetString(1);
Console.WriteLine(userid);
Console.WriteLine(password);
}
If 语句检查输入的用户标识和密码是否与数据库中现有的用户标识 passwrd 相似。
if((s1.Equals(userid)) && (s2.Equals(password)))
{
MessageBox.Show("LOGIN SUCCESSFULLY DONE>>");
}
else
{
MessageBox.Show("LOGIN UNSUCCESSFUL ....");
}
}
字符串中可能有额外的空格吗?尝试使用 Trim((
String s1 = textBox1.Text.Trim();
String s2 = textBox2.Text.Trim();
和
userid = reader.GetString(0).Trim();
password = reader.GetString(1).Trim();
您知道从数据库中只返回一条记录吗?