System.Data.SqlClient.SqlException:' ='附近的语法不正确

时间:2015-02-10 07:28:19

标签: c# asp.net sql-server-2008

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

3 个答案:

答案 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的更多信息。