Проверить, доступен ли SQL-сервер программно? - PullRequest
3 голосов
/ 30 июля 2009

Я ищу способ проверить доступность SQL Server, например, Решение MySQL , если нет лучшего способа.

Мой план состоит в том, чтобы проверить, работает ли экземпляр SQL Server вверх / вниз, а если он выключен, отобразить сообщение пользователю, все через try / catch.

Ответы [ 3 ]

1 голос
/ 30 июля 2009

Вот программное решение, использующее SMO (объекты управления сервером) ...

Microsoft.SqlServer.Management.Smo.Server server = new Microsoft.SqlServer.Management.Smo.Server();
try
{
    // You can modify your connection string here if necessary
    server.ConnectionContext.ConnectionString = "Server=servername; User ID=username; Password=password"; 
    server.ConnectionContext.Connect();
}
catch (Exception ex)
{
    // Handle your exception here
}
if (server.ConnectionContext.IsOpen)
{
     // Show message that the server is up
}
else
{
     // Show message that the server is down
}
1 голос
/ 30 июля 2009

Я бы добавил исключение в начало вашей попытки / поймать / наконец, чтобы посмотреть состояние соединения sql. Я забыл об объекте и собственности, но я уверен, что вы можете узнать это. Типичный способ запроса SQL (к которому я привык):

    using (SqlConnection) {
       try {
           // open connection, try to execute query and fetch results


       } catch (Connection.IsOpen) {
       // add the catch exception for connection status here


       } finally {
          //close connection
       }
   }
1 голос
/ 30 июля 2009

Я бы создал новую строку подключения с очень маленьким тайм-аутом подключения

Dim Conn As New SqlClient.SqlConnection("server=127.0.0.1;uid=username;pwd=password;database=mydatabasename;Connect Timeout=5")

        Try
            Conn.Open()
        Catch exSQL As SqlClient.SqlException
        If exSQL.Message.ToUpper().Contains("LOGIN FAILED") Then
            MsgBox("Invalid User/Password")
        Else
            MsgBox("SQL Error: " & exSQL.Message)
        End If
        Exit Sub
        Catch ex As Exception
            MsgBox("Something went wrong.")
            Exit Sub
        Finally
            Conn.Close()
            Conn.Dispose()
        End Try
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...