如何检测到 SQL Server Express 服务的状态,或通过使用 Visual Basic 或 C# 开始 SQL Server Express 服务

文章翻译 文章翻译
文章编号: 912426 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

Microsoft SQL Server 2005年速成版是一个基于服务的产品。如果生成在 SQL Server 2005 Express Edition Microsoft Visual Studio 2005年的应用程序,则可以检测到状态SQL Server Express 服务在启动时的应用程序。可以使用ServiceController类,请执行下列操作:
  • 检测到 SQL Server Express 服务的状态。
  • 如果未正确启动,则启动 SQL Server Express 服务。
注意默认安装 SQL Server 2005 Express Edition 的使用实例名为 SQLEXPRESS。此实例名称映射到的服务名称MSSQL$ SQLEXPRESS。

更多信息

若要在 Visual Studio 的控制台应用程序中使用ServiceController类,以检测并启动SQL Server Express 服务,请按照下列步骤操作:
  1. 开始 Visual Studio 2005。
  2. 在上 文件 菜单上指向然后单击 项目.
  3. 单击 Visual Basic可视化C# 在下 项目类型然后单击控制台应用程序 在下 Visual Studio 安装模板.

    注意默认情况下,在中创建的 Module1.vb 文件Visual Basic 项目中。在视觉效果中,默认情况下,创建 Program.cs 文件C# 项目。
  4. 使用 ConsoleApplication1 作为中的名称 Name 框中,然后再单击确定.
  5. 添加到"System.ServiceProcess"命名空间的引用。到执行此操作,请按照下列步骤操作:
    1. 在上 项目 菜单上,单击 添加引用.
    2. 单击 .NET 选项卡上单击 System.ServiceProcess然后单击 确定.
  6. 用以下内容替换现有的代码代码。

    注意中的 Module1.vb 文件中的代码替换Visual Basic 项目中。Program.cs 中的代码替换在 C# 项目中的文件。

    Visual Basic
    Imports System
    Imports 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
    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. 按 CTRL + F5 以运行程序。

参考

有关"System.ServiceProcess"名称空间的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) Web 站点:
http://msdn2.microsoft.com/en-us/library/system.serviceprocess (vs.71).aspx
?

属性

文章编号: 912426 - 最后修改: 2013年5月30日 - 修订: 2.0
这篇文章中的信息适用于:
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional
  • Microsoft SQL Server 2005 Express Edition
关键字:?
kbprb kbhowto kbmt KB912426 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 912426
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com