我正在尝试使用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");
}
}
答案 0 :(得分:0)
您的sql未正确引用,请尝试此操作;
string strQuery = "select id from Register where Username='" + textBox1.Text +
"' and Password='" + textBox2.Text + "'";
但是,正如其他人所建议的那样,出于多种原因,您应该使用参数化查询。