How to detect the status of the SQL Server Express service or start the SQL Server Express service by using Visual Basic or Visual C#

Extended support for SQL Server 2005 ended on April 12, 2016

If you are still running SQL Server 2005, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

Summary
Microsoft SQL Server 2005 Express Edition is a service-based product. If you build Microsoft Visual Studio 2005 applications on SQL Server 2005 Express Edition, you can detect the status of the SQL Server Express service when you start the application. You can use the ServiceController class to do the following:
  • Detect the status of the SQL Server Express service.
  • Start the SQL Server Express service if it is not started correctly.
Note The default installation of SQL Server 2005 Express Edition uses an instance name of SQLEXPRESS. This instance name maps to the service name of MSSQL$SQLEXPRESS.
More information
To use the ServiceController class in a Visual Studio console application to detect and to start the SQL Server Express service, follow these steps:
  1. Start Visual Studio 2005.
  2. On the File menu, point to New, and then click Project.
  3. Click Visual Basic or Visual C# under Project types, and then click Console Application under Visual Studio installed templates.

    Note By default, the Module1.vb file is created in the Visual Basic project. By default, the Program.cs file is created in the Visual C# project.
  4. Use ConsoleApplication1 as the name in the Name box, and then click OK.
  5. Add a reference to the "System.ServiceProcess" namespace. To do this, follow these steps:
    1. On the Project menu, click Add Reference.
    2. Click the .NET tab, click System.ServiceProcess, and then click OK.
  6. Replace the existing code with the following code.

    Note Replace the code in the Module1.vb file in the Visual Basic project. Replace the code in the Program.cs file in the Visual C# project.

    Visual Basic
    Imports SystemImports System.ServiceProcessModule 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 SubEnd 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. Press CTRL+F5 to run the program.
References
For more information about the "System.ServiceProcess" namespace, visit the following Microsoft Developer Network (MSDN) Web site:  
Properties

Article ID: 912426 - Last Review: 10/16/2012 09:14:00 - Revision: 2.0

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

  • kbprb kbhowto KB912426
Feedback