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

3
我正在尝试使用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个回答

9

您需要一个空格

 btnString += " WHERE(userName=@name) AND (passWord=@word)";

不客气。请查看@Konstantin Spirin的答案中关于多行字符串的内容。 - Mate

1

您的命令文本中缺少一个空格。

string btnString = "SELECT userName, passWord, FacultyId, StudentId FROM LOGIN";
btnString += " WHERE(userName=@name) AND (passWord=@word)";

应该这样做


1

缺少一个空格。您可以使用多行字符串而不是连接来避免将来出现此类问题(请注意在 " 前的 @):

string btnString = @"
    SELECT userName, passWord, FacultyId, StudentId FROM LOGIN
    WHERE(userName=@name) AND (passWord=@word)";

您可以在这里阅读更多关于字符串的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接