' A'附近的语法不正确

时间:2016-12-18 14:22:54

标签: mysql .net

选择语句可能有什么问题?我在“' 附近发现了一个名为 错误语法的错误。

由于我更习惯在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注入。

1 个答案:

答案 0 :(得分:0)

在尝试执行查询之前打印出查询并仔细检查。这解决了我动态生成的查询的一大部分问题?"我们在这里看到的风格问题。

例如,我要警惕之间缺乏空间(不一定是详尽的清单,这些只是我注意到的):

  • routeId以及以下AND;
  • row[0]以及以下AND;
  • row[1]以及以下AND;
  • D.Name以及以下FROM;和
  • Stop D以及以下WHERE

最后两个肯定是有问题的,因为虽然可能变量可能以空格结尾(虽然不常见),但固定字符串肯定不要。两者都可能导致您看到的特定错误,因为它们会出现:

D.NameFROM Driver A
Stop DWHERE A.