[英]incorrect syntax near 'A'
此选择语句可能有什么问题? 我在'A'附近收到一个称为不正确语法的错误。
由于我更习惯于在postgreSQL中编写查询,因此我猜测MySQL的语法略有不同。
cmd.CommandText = "WITH CurrentStop AS (SELECT[Stop Id] FROM Stops WHERE[Route Id] = " +
routeId + "AND Serial = " + stopsDriven + ")" +
"SELECT A.Firstname, A.Lastname, B.Make, B.Capacity, B.Route, D.Name" +
"FROM Driver A, Bus B, CurrentStop C, Stop D" +
"WHERE A.Id = " + row[0] + "AND B.[Bus Id] = " + row[1] + "AND C.[Stop Id] = D.[Stop Id]";
顺便说一下,所有输入都仅在系统中,因此不可能发生SQL注入。
尝试执行查询之前,请先打印出查询并仔细检查。 这解决了很大一部分“动态生成的查询出了什么问题?” 我们在这里看到的样式问题。
例如,我会担心两者之间没有空格(不一定是详尽的清单,这些只是我注意到的清单):
routeId
和以下AND
; row[0]
和以下AND
; row[1]
和以下AND
; D.Name
及以下FROM
; 和 Stop D
及其之后的WHERE
。 这些最后两个是因为肯定有问题,而有可能的变量可能在空格结尾(但不寻常的),固定字符串当然不。 两者都可能导致您看到的特定错误,因为它们将显示为:
D.NameFROM Driver A
Stop DWHERE A.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.