Определить исключение sql в c #?

#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. Ссылка возвращает «эта страница не существует».