如何修复 ' ' 附近的错误语法?

How to fix incorrect syntax near ' '?

你好,我在这段代码中的查询有问题我想查询特定的数据行,其中 'CourseNo' = 'CmpE 513';

   string getText = this.SubjectList.Value;

    //Connection String
    connector.ConnectionString = "Data Source=keith;Initial Catalog=SAD;Integrated Security=True";

    query = "select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = " + getText + "";

    SubjectlistData = connector.ExecuteQuery(query);
    SubjectlistTable = SubjectlistData.Tables[0];

错误表示“513”附近的语法不正确

结果显示为 int 而不是字符串。

在我的 sql 服务器查询中,我试过这个:

select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where courseno = 'CmpE 513';

并且结果显示一个数据。

如何在字符串 getText 后面的 aspx 代码中添加引号 (' ')?

我试过了:

string getText = this.SubjectList.Value;
query = "select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = " + 'getText' + "";

但是我收到一个错误,我该如何解决?

这就是您的 select 查询的样子

query = "select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = " + getText + "";

问题

在上述情况下,如果 getTextint 类型,那么毫无疑问,上述查询将起作用,但在您的情况下,它是一个字符串,因此如果没有包含在 quotation 中,就会出现问题,就像您所面临的那样,因为它在空格处终止该行并且 sql 编译器无法识别其余字符

string getText = this.SubjectList.Value;
query = "select CourseNo,CourseDescription,Units,Day,StartTime, EndTime,Room, Instructor, Amount,Status from assessmentform where CourseNo = " + 'getText' + "";

问题

在上述情况下,您试图以不正确的方式包含 getText 这不是包含字符串对象的正确方法,否则它将变成字符串而不是字符串对象或将导致编译时错误。

解决方案

您需要将您的 getText 括起来并使其成为字符串

query = "select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = '" + getText + "'";

由于"CmpE 513"包含空格,应该用单引号括起来

喜欢 suprabhat 建议使用以下代码:

query = "select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = '" + getText + "'";