Есть ли способ обработки ошибок при установлении соединения с SQL Server на уровне приложений? - PullRequest
1 голос
/ 28 июня 2011

Я говорю об этом сообщении об ошибке, которое всегда появляется каждый раз, когда я теряю подключение к Интернету или каждый раз, когда сервер отключается:

При установлении соединения произошла ошибка сети или экземплярак SQL Server.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: поставщик общей памяти, ошибка: 40 - не удалось открыть соединение с SQL Server)

Я хочу знать, как лучше всего отобразить понятное сообщение об ошибке для этого.На самом деле, это то, что я сделал:

        Try
            Using conn As New SqlConnection(ConnectionStrings("ConnectionName").ConnectionString)
                Dim command As SqlCommand = conn.CreateCommand()
                conn.Open()
                Dim transact As SqlTransaction = conn.BeginTransaction()
                command.Transaction = transact
                Try
        'codes to execute
        transact.commit()
                Catch ex As SqlException
        transact.rollback()
                    'display error
                End Try
            End Using
        Catch ex As SqlException
            'display friendly error message
        End Try

Мне нужно делать это каждый раз, когда я использую sqlconnection.Есть ли способ сделать один блок кода, который мог бы обработать все экземпляры этой ошибки на всех моих страницах?

Ответы [ 2 ]

1 голос
/ 28 июня 2011

Если вам нужно обработать свои ошибки в одном блоке, лучше всего использовать метод global.asax Application_Error.Там вы можете проверить исключение через:

Exception ex = Server.GetLastError();
0 голосов
/ 28 июня 2011

Я думаю, это самый практичный способ.Иногда вам нужно отобразить другое сообщение об ошибке или другой подход, даже если они имеют одно и то же исключение.

Вы также можете попробовать эту статью http://www.4guysfromrolla.com/articles/081209-1.aspx, но учтите, что перенаправление иногда не является хорошим вариантом, чтобы сказать, что что-то пошло не так на вашем сайте, особенно на странице, где пользователь заполняет формуВы не хотите, чтобы он потерял свой прогресс, не так ли?

Если вы используете SqlDataSource http://forums.asp.net/t/978920.aspx/1

...