非数字密码的列名无效

本文关键字:无效 数字 密码 | 更新日期: 2023-09-27 18:07:40

我正在尝试使用c#做一个登录应用程序表单。

在下面的代码中,我得到一个异常

无效的列名

当我使用非数字密码时。当我只使用数字密码时,它工作得很好。

数据库中Password列的类型为nvarchar(Max)

if (ValidateTextBoxes())
{
   SqlConnection oConn = new SqlConnection();
   oConn.ConnectionString = "Data Source=MCOEELIMENEM''sqlexpress;Initial Catalog=Database;Integrated Security=True";
   oConn.Open();
   string strQuery = "select id from Register where Username='" + textBox1.Text + "' and Password=" + textBox2.Text + "";
   SqlCommand cmd = new SqlCommand(strQuery, oConn);
   var retVal = cmd.ExecuteScalar();
   if (retVal != null)
   {
      MessageBox.Show("Login Successfully Done");
   }
   else
   {
      MessageBox.Show("Access Denied, password username mismatched");
   }
}

非数字密码的列名无效

你的sql没有被正确引用,试试这个;

string strQuery = "select id from Register where Username='" + textBox1.Text + 
"' and Password='" + textBox2.Text + "'";

然而,正如其他人所建议的那样,出于许多原因,您确实应该使用参数化查询。