即使控制台显示数据库中的匹配值,窗口上显示错误的输出也是如此

本文关键字:显示 输出 错误 窗口 数据库 控制台 | 更新日期: 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();

您知道从数据库中只返回一条记录吗?