ExecuteReader在“=”附近抛出不正确的语法

时间:2013-06-17 05:53:37

标签: c# sql

运行此代码时,我收到错误,显示“=”附近的语法不正确,突出显示“SqlDataReader drs = cmd.ExecuteReader();” 真的很令人惊讶,现在仍然坚持这个......需要帮助。!!!

public void nextCourseDisplay(string crscode)
{
        SqlCommand cmd = new SqlCommand();
        string count = string.Empty;
        cmd.Connection = CPublic.Comm_con;
        cmd.CommandType = CommandType.Text;
        cmd.Parameters.AddWithValue("@CID",crscode);
        cmd.CommandText = "select RECNO from COURSEMASTER" + CPublic.g_firmcode + "where CID = @CID";
        SqlDataReader drs = cmd.ExecuteReader();
        if (drs.HasRows)
        {
            if (drs.Read())
            {
                count = drs.GetString(0);
            }
            drs.Close();
        }
}

3 个答案:

答案 0 :(得分:5)

where之前为SQL语句添加额外空格:

"select RECNO from COURSEMASTER" + CPublic.g_firmcode + " where CID = @CID"
                                                         ^      

如果您执行此操作,CPublic.g_firmcode的值将与where分开。否则where是您的表名的一部分。

答案 1 :(得分:0)

crscode有什么价值?如果它是一个空字符串或null我想sql解释器将无法正常工作,并为您提供错误。

答案 2 :(得分:0)

检查你的sql语句,并在执行之前尝试打印cmd.CommandText!