C# запрос не переводится на MYSQL - PullRequest
0 голосов
/ 24 марта 2020
String query6 = "
  SELECT p.*,SUM(L.qty)as sales 
  FROM product p,purchaseLog L 
  WHERE L.purchaseDate 
    BETWEEN '"+ startDate.Value.Date.ToString("yyyy-dd-MM") + "' 
    AND '"+endDate.Value.Date.ToString("yyyy-dd-MM") +"' 
    AND p.id=l.itemID GROUP BY p.product_name 
  ORDER BY sales ASC LIMIT " + " " + " " + count + "";

Это запрос, который я сделал в Visual Studio. Я попытался ввести этот запрос вручную без переменных в phpmyadmin, и он работает просто отлично. Но по какой-то причине, когда я записываю запрос и передаю его mysqlcommand и mysqldatareader, он не определяет дату. Количество использованных не работает тоже. Но добавление пробела между словом «предел» и счетом заставило его работать.

Обрезает ли C# некоторые части моих запросов?

1 Ответ

0 голосов
/ 24 марта 2020

Это: 'yyyy-dd-MM' неверный формат. Это должно быть "yyyy-MM-dd". В идеале вы даже должны поставить префикс этого слова DATE, чтобы пометить строку как литерал даты:

" ... WHERE L.purchaseDate BETWEEN DATE '" + startDate.Value.Date.ToString("yyyy-MM-dd") + 
                            "' AND DATE '" + endDate.Value.Date.ToString("yyyy-MM-dd") + "'... "
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...