Cómo detectar el estado del servicio SQL Server Express o iniciar el servicio SQL Server Express mediante Visual Basic o Visual C#

Resumen

Microsoft SQL Server 2005 Express Edition es un producto de servicio. Si se generan aplicaciones de Microsoft Visual Studio 2005 en SQL Server 2005 Express Edition, puede detectar el estado del servicio SQL Server Express cuando se inicia la aplicación. Puede utilizar la clase ServiceController para hacer lo siguiente:
  • Detectar el estado del servicio SQL Server Express.
  • Inicie el servicio SQL Server Express si no se ha iniciado correctamente.
Nota: La instalación predeterminada de SQL Server 2005 Express Edition utiliza un nombre de instancia SQLEXPRESS. Este nombre de instancia se asigna el nombre de servicio de MSSQL$ SQLEXPRESS.

Más información

Para utilizar la clase ServiceController en una aplicación de consola de Visual Studio para detectar e iniciar el servicio SQL Server Express, siga estos pasos:
  1. Inicie Visual Studio 2005.
  2. En el menú archivo , elija
    De nuevoy, a continuación, haga clic en proyecto.
  3. Haga clic en Visual Basic o Visual C# en tipos de proyectoy, a continuación, haga clic en
    Aplicación de consola en Plantillas instaladas de Visual Studio.

    Nota: De forma predeterminada, se crea el archivo Module1.vb en el proyecto de Visual Basic. De forma predeterminada, se crea el archivo Program.cs en el proyecto de Visual C#.
  4. Utilice ConsoleApplication1 como nombre en el cuadro nombre y, a continuación, haga clic en
    OK.
  5. Agregue una referencia al espacio de nombres "System.ServiceProcess". Para ello, siga estos pasos:
    1. En el menú proyecto , haga clic en Agregar referencia.
    2. Haga clic en la ficha .NET , haga clic en
      System.ServiceProcessy, a continuación, haga clic en
      OK.
  6. Reemplace el código existente con el código siguiente.

    Nota: Reemplace el código en el archivo Module1.vb en el proyecto de Visual Basic. Reemplace el código en el archivo Program.cs en el proyecto de Visual C#.

    Visual Basic
    Imports SystemImports System.ServiceProcess

    Module Module1

    Sub Main()

    Dim myServiceName As String = "MSSQL$SQLEXPRESS" 'service name of SQL Server Express
    Dim status As String 'service status (For example, Running or Stopped)
    Dim mySC As ServiceController

    Console.WriteLine("Service: " & myServiceName)

    'display service status: For example, Running, Stopped, or Paused
    mySC = New ServiceController(myServiceName)
    Try
    status = mySC.Status.ToString
    Catch ex As Exception
    Console.WriteLine("Service not found. It is probably not installed. [exception=" & ex.Message & "]")
    Console.ReadLine()
    End
    End Try
    Console.WriteLine("Service status : " & status)

    'if service is Stopped or StopPending, you can run it with the following code.
    If mySC.Status.Equals(ServiceControllerStatus.Stopped) Or mySC.Status.Equals(ServiceControllerStatus.StopPending) Then
    Try
    Console.WriteLine("Starting the service...")
    mySC.Start()
    mySC.WaitForStatus(ServiceControllerStatus.Running)
    Console.WriteLine("The service is now " & mySC.Status.ToString)

    Catch ex As Exception
    Console.WriteLine("Error in starting the service: " & ex.Message)
    End Try
    End If

    Console.WriteLine("Press a key to end the application...")
    Console.ReadLine()
    End
    End Sub
    End Module
    Visual C#
    using System;using System.Collections.Generic;
    using System.Text;
    using System.ServiceProcess;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main()
    {

    string myServiceName = "MSSQL$SQLEXPRESS"; //service name of SQL Server Express
    string status; //service status (For example, Running or Stopped)

    Console.WriteLine("Service: " + myServiceName);

    //display service status: For example, Running, Stopped, or Paused
    ServiceController mySC = new ServiceController(myServiceName);

    try
    {
    status = mySC.Status.ToString();
    }
    catch (Exception ex)
    {
    Console.WriteLine("Service not found. It is probably not installed. [exception=" + ex.Message + "]");
    Console.ReadLine();

    return;

    }

    //display service status: For example, Running, Stopped, or Paused
    Console.WriteLine("Service status : " + status);

    //if service is Stopped or StopPending, you can run it with the following code.
    if (mySC.Status.Equals(ServiceControllerStatus.Stopped) | mySC.Status.Equals(ServiceControllerStatus.StopPending))
    {
    try
    {
    Console.WriteLine("Starting the service...");
    mySC.Start();
    mySC.WaitForStatus(ServiceControllerStatus.Running);
    Console.WriteLine("The service is now " + mySC.Status.ToString());
    }
    catch (Exception ex)
    {
    Console.WriteLine("Error in starting the service: " + ex.Message);

    }

    }

    Console.WriteLine("Press a key to end the application...");
    Console.ReadLine();

    return;

    }

    }
    }
  7. Presione CTRL + F5 para ejecutar el programa.

Referencias

Para obtener más información sobre el espacio de nombres "System.ServiceProcess", visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
 
Propiedades

Id. de artículo: 912426 - Última revisión: 17 feb. 2017 - Revisión: 2

Microsoft Visual Studio 2005 Standard Edition, Microsoft Visual Studio 2005 Professional Edition, Microsoft SQL Server 2005 Express Edition

Comentarios