2010-08-17 5 views
0

Есть ли способ уловить все исключения SQL в проекте? У меня есть несколько gridviews и несколько sqldatasources, и большинство ошибок происходят, когда пользователь вводит что-то неправильно или в неправильном столбце. Итак, как я могу остановить страницу «Ошибка сервера/Проект»?Ловля SQL-исключений в vb.net

+0

Используете ли вы ASP.Net? – SLaks

+0

vb.net специально. – Shawn

ответ

2

Простой ответ заключается в проверке ввода перед отправкой его на сервер SQL Server. Таким образом, исключений не будет.

Если вы хотите централизованно обрабатывать все свои ошибки (что не является идеальным решением для этой конкретной проблемы), вы можете настроить собственную обработку ошибок в файле web.config.

+0

Это имеет смысл, но как я могу проверить и проверить, действительно ли введенные пользователем данные действительны? – Shawn

+0

Знайте, что является действительным и проверяйте введенные данные пользователя перед передачей его на SQL Server. – Russ

+0

Должен быть способ избежать жесткого программирования правильных параметров для каждой ячейки в 20 sqldatasources, которые у меня есть. – Shawn

0

Я бы предположил ошибку ловушки в событии Application_Error внутри вашего Global.asax в вашем веб-приложении.

+0

Тем не менее, я должен согласиться с ответом Марка, вы должны проверить ввод перед вызовом SQL – Mikeware

+0

Есть ли способ объединить это с ответом Marks, поэтому любые ошибки, которые я пропущу, пойманы этим? – Shawn

+0

На самом деле, мое предложение будет ломать ошибки на странице и работать соответственно, но пользовательская обработка ошибок в web.config позволит вам только заменить страницу уродливых ошибок своей пользовательской (более удобной для пользователя) страницей ошибок. (Возможно, вы можете добавить в него некоторый код, но я не уверен, что вы можете иметь дело с исключениями на этой странице) – Mikeware

0

Самый простой способ поймать все исключения - это сделать это в обработчике событий Application_error в global.asax и использовать специальную обработку ошибок web.config, чтобы показать дружественную страницу ошибок. Это уже упоминалось в материалах.

Если вы хотите разместить всю свою логику проверки в одном месте или отделить их от ваших страниц aspx, вы можете сделать это, сделав свой сайт многоуровневым и поместите свою собственную логику проверки в средний слой. Используя этот метод, ваши данные будут проверяться на этом уровне независимо от того, какая страница будет обращаться к вашим данным. Вы также можете использовать objectdatasource для выполнения операции select/insert/update/delete. Очевидно, что это требует некоторой работы, но она может четко разделять ваши данные и ваш пользовательский интерфейс.

Смежные вопросы