非数字密码的列名无效

时间:2014-06-09 18:49:34

标签: c#

我正在尝试使用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");
   }
}

1 个答案:

答案 0 :(得分:0)

您的sql未正确引用,请尝试此操作;

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

但是,正如其他人所建议的那样,出于多种原因,您应该使用参数化查询。