Comment faire pour détecter l’état du service de SQL Server Express ou démarrer le service de SQL Server Express à l’aide de Visual Basic ou Visual C#

Résumé

Microsoft SQL Server 2005 Express Edition est un produit basé sur un service. Si vous générez des applications Microsoft Visual Studio 2005 sur SQL Server 2005 Express Edition, vous pouvez détecter l’état du service de SQL Server Express lorsque vous démarrez l’application. Vous pouvez utiliser la classe ServiceController pour effectuer les opérations suivantes :
  • Détecter l’état du service de SQL Server Express.
  • Démarrez le service de SQL Server Express s’il n’est pas démarré correctement.
Remarque L’installation par défaut de SQL Server 2005 Express Edition utilise un nom d’instance de SQLEXPRESS. Ce nom d’instance mappe le nom de service de MSSQL$ SQLEXPRESS.

Plus d'informations

Pour utiliser la classe ServiceController dans une application de console Visual Studio pour détecter et pour démarrer le service de SQL Server Express, procédez comme suit :
  1. Démarrez Visual Studio 2005.
  2. Dans le menu fichier , pointez sur
    De Nouveau, puis cliquez sur projet.
  3. Cliquez sur Visual Basic ou Visual C# sous types de projets, puis cliquez sur
    Application Console sous Visual Studio des modèles installés.

    Remarque Par défaut, le fichier Module1.vb est créé dans le projet Visual Basic. Par défaut, le fichier Program.cs est créé dans le projet Visual C#.
  4. Utilisez ConsoleApplication1 comme nom dans la zone nom , puis cliquez sur
    OK.
  5. Ajoutez une référence à l’espace de noms « System.ServiceProcess ». Pour ce faire, procédez comme suit :
    1. Dans le menu projet, cliquez sur Ajouter une référence.
    2. Cliquez sur l’onglet .NET , cliquez sur
      System.ServiceProcess, puis cliquez sur
      OK.
  6. Remplacez le code existant par le code suivant.

    Remarque Remplacez le code dans le fichier Module1.vb dans le projet Visual Basic. Remplacez le code dans le fichier Program.cs dans le projet 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. Appuyez sur CTRL + F5 pour exécuter le programme.

Références

Pour plus d’informations sur l’espace de noms « System.ServiceProcess », visitez le site Web de Microsoft Developer Network (MSDN) à l’adresse suivante :
 
Propriétés

ID d'article : 912426 - Dernière mise à jour : 17 janv. 2017 - Révision : 1

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

Commentaires