В настоящее время я пытаюсь получить содержимое всех записей между определенной датой в базе данных MySQL с именем «заказы». Для этого я использую следующий код:Запрос C# не выполняется.
query = "SELECT id, date, contactinfo, orderinfo, contents, print_location, order_id, file_size FROM orders where date between " + dateFrom + " and " + dateTill + " and print_location like 'antw'";
dateFrom и dateTull - это переменные, содержащие временные метки.
Все выше работает отлично. Проблема, с которой я столкнулся сейчас, заключается в том, что я хочу проверить на двух print_locations вместо одного. Как показано в приведенном выше коде, я ищу только «antw». Код, который я прямо сейчас искать на два print_locations выглядит следующим образом:
query = "SELECT id, date, contactinfo, orderinfo, contents, print_location, order_id, file_size FROM orders where date between " + dateFrom + " and " + dateTill + " and print_location like 'antw' or print_location like 'helm'";
Но почему-то это не работает. Я не получаю ошибку, которую форма просто зависает и делает ее недоступной.
Это, вероятно, простая проблема для решения, но я не могу ее решить. Причина, по которой я показываю значение переменной запроса, а не остальную часть моего кода, - это то, что все работает отлично в течение нескольких недель.
Не могли бы вы отобразить больше кода? –
вы забыли скобки 'и (print_location как 'antw' или print_location, например 'helm')' – fubo
Кроме того, используйте [подготовленные заявления] (http://en.wikipedia.org/wiki/Prepared_statement). Это доступно для потенциального [SQL-инъекции] (http://en.wikipedia.org/wiki/SQL_injection). – Phylogenesis