此选择语句可能有什么问题?我在“' 附近发现了一个名为 错误语法的错误。
由于我更习惯在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注入。
答案 0 :(得分:0)
在尝试执行查询之前打印出查询并仔细检查。这解决了我动态生成的查询的一大部分问题?"我们在这里看到的风格问题。
例如,我要警惕之间缺乏空间(不一定是详尽的清单,这些只是我注意到的):
routeId
以及以下AND
; row[0]
以及以下AND
; row[1]
以及以下AND
; D.Name
以及以下FROM
;和Stop D
以及以下WHERE
。最后两个肯定是有问题的,因为虽然可能变量可能以空格结尾(虽然不常见),但固定字符串肯定不要。两者都可能导致您看到的特定错误,因为它们会出现:
D.NameFROM Driver A
Stop DWHERE A.