非数字密码的列名无效
本文关键字:无效 数字 密码 | 更新日期: 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 + "'";
然而,正如其他人所建议的那样,出于许多原因,您确实应该使用参数化查询。