#c#
#c#
Вопрос:
как перехватить исключение sql с его кодом ошибки (error no), чтобы определить, какое исключение точно генерируется в c #? например, база данных отключена или в другой таблице есть строка ссылки, поэтому sql не позволит мне удалять строку, но как именно я мог бы определить, в чем проблема в catch, чтобы я мог отобразить сообщение пользователю в моем приложении
Комментарии:
1. Какую библиотеку вы используете для взаимодействия с базой данных?
Ответ №1:
Вам нужно поместить код вашей базы данных в try ... catch
блок и (предполагая, что вы используете ADO.NET для SQL Server) затем перехватите SqlException
.
try
{
// your database code here
}
catch(SqlException sqlEx)
{
foreach(SqlError error in sqlEx.Errors)
{
// you can inspect the individual errors, their code etc. here
}
}
SqlException
Объект будет содержать коллекцию SqlError
объектов, которые описывают произошедшую ошибку в мельчайших деталях — с номером строки, кодом ошибки и всем остальным.
Другие базы данных будут иметь похожие конструкции — проверьте свои документы!
Ответ №2:
В иерархии классов исключений .net каждому типу исключений присваиваются определенные номера. Вы найдете некоторый полезный материал здесь
Комментарии:
1. Ссылка возвращает «эта страница не существует».