我正在尝试使用SqlDataReader
验证登录表单,但我收到语法错误
System.Data.SqlClient.SqlException:'='
附近的语法不正确
我查看了我的代码,似乎没有检测到上述错误。请协助。
这是我的代码:
string btnString = "SELECT userName, passWord, FacultyId, StudentId FROM LOGIN";
btnString += "WHERE(userName=@name) AND (passWord=@word)";
SqlCommand cc = new SqlCommand();
SqlDataReader sr;
cc.Connection = sqlConn;
cc.CommandType = CommandType.Text;
cc.CommandText = btnString;
cc.Parameters.Add("@name", SqlDbType.Char).Value = txtUserName.Text;
cc.Parameters.Add("@word", SqlDbType.Char, 8).Value = txtPassWord.Text;
sr = cc.ExecuteReader();
if (sr.HasRows == true)
{
Response.Write("<script>alert('Login is successful!')</script>");
}
错误显示在
sr = cc.ExecuteReader();
答案 0 :(得分:8)
你需要一个空间
btnString += " WHERE(userName=@name) AND (passWord=@word)";
答案 1 :(得分:1)
你在命令文本中遗漏了一个空格。
string btnString = "SELECT userName, passWord, FacultyId, StudentId FROM LOGIN";
btnString += " WHERE(userName=@name) AND (passWord=@word)";
应该这样做
答案 2 :(得分:1)
缺少空间。您可以使用多行字符串而不是连接来避免将来出现此类问题(在@
之前注意"
):
string btnString = @"
SELECT userName, passWord, FacultyId, StudentId FROM LOGIN
WHERE(userName=@name) AND (passWord=@word)";
您可以阅读有关字符串here的更多信息。