Получение дополнительной информации от System.Data.SQLite.SQLiteException - PullRequest
3 голосов
/ 09 октября 2011

Когда System.Data.SQLite сталкивается с ошибкой синтаксиса SQL, единственная значимая информация, которую дает SQLiteExcption свойство *1003*, это имя ошибки SQL и ключевое слово / символ рядом с ней.Есть ли способ получить дополнительную информацию об ошибке, а именно точное местоположение (или диапазон) в строке CommandText, где произошла ошибка?

Это не обязательно должно быть из SQLiteException - получение этой информации из SQLiteCommand или SQLiteConnection также поможет.

1 Ответ

1 голос
/ 09 октября 2011

Это исключение вызвано синтаксической ошибкой в ​​вашем операторе SQL. Сам C # не может дать вам больше информации. Он просто передает ваш запрос в SQLite. Затем SQLite анализирует ваш запрос и генерирует синтаксическую ошибку. Эта ошибка перехватывается C # и упаковывается в SQLiteException. Таким образом, вы не спрашиваете, что C # дает вам больше информации, а что делает SQLite.

К сожалению, насколько я знаю (и после некоторого поиска в Google), кажется, что SQLite не может дать вам больше информации. Единственной другой опцией, которую я нашел, была программа под названием SQLite Developer . Я не пробовал, но он говорит, что он имеет (помимо целого ряда других функций) проверку синтаксиса. Снимок экрана этого средства проверки на этой странице показывает, что он подчеркивает ваши синтаксические ошибки в ваших операторах SQL. Существует платная версия и бесплатная облегченная версия. Вы должны сами убедиться, какой из них достаточно.

...