C # OleDb запрос на выбор выдает пропущенное исключение оператора - PullRequest
1 голос
/ 08 марта 2011

Я сейчас подключаюсь и работаю с базой данных MS Access.Я могу выполнить общий запрос select * отлично, поэтому я подключен к БД, но когда я пытаюсь выбрать, используя параметры, он выдает исключение пропущенного оператора.строка:

Exception Details: System.Data.OleDb.OleDbException: Syntax error (missing operator) in query expression 'page_title = ? limit 1'.

Я пытался использовать @ p1 внутри запроса, а также текущий?Я пробовал добавлять параметры разными способами, в том числе удалять @ в имени параметра.Ничто не похоже на работу.Может ли кто-нибудь указать мне правильное направление?

1 Ответ

4 голосов
/ 08 марта 2011

AFAIK, в MS Access нет условия LIMIT.

И параметры должны быть именованы, @p1 в вашем случае вместо ?

У меня нет 'Я работал с Access годами, поэтому я могу ошибаться, но вместо LIMIT попробуйте следующее:

Select TOP 1 ID from pages where page_title = @p1

Также, если необходимо, примите во внимание этот совет:

MS Access нене совсем подходящая СУБД для работы с веб-сайтами (я подозреваю, что в вашем случае это веб-сайт).Для альтернативных файловых систем управления базами данных отметьте SQLite и FirebirdSQL .Оба имеют множество инструментов, которые вы можете использовать для GUI, например, SQLite Maestro и, соответственно, IBExpert.
Запросы более гибкие в этих СУБД.

...