Artigo: 912426 - Última revisão: sexta-feira, 11 de Maio de 2007 - Revisão: 1.2

A detectar o estado do serviço SQL Server Express ou iniciar o serviço SQL Server Express utilizando o Visual Basic ou Visual C#

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sumário

Microsoft SQL Server 2005 Express Edition é um produto baseado no serviço. Se criar aplicações do Microsoft Visual Studio 2005 no SQL Server 2005 Express Edition, poderá detectar o estado do serviço SQL Server Express quando inicia a aplicação. Pode utilizar a classe ServiceController para efectuar o seguinte:
  • Detecte o estado do serviço SQL Server Express.
  • Inicie o serviço SQL Server Express se não for iniciado correctamente.
Nota Instalação predefinida do SQL Server 2005 Express Edition utiliza um nome de instância de SQLEXPRESS. Este nome de instância mapeia para o nome de serviço do MSSQL $ SQLEXPRESS.

Mais Informação

Para utilizar a classe ServiceController numa aplicação de consola Visual Studio para detectar e iniciar o serviço SQL Server Express, siga estes passos:
  1. Inicie o Visual Studio 2005.
  2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
  3. Clique em Visual Basic ou Visual C# em tipos de projecto e clique em Consola aplicação em Visual Studio instalados modelos .

    Nota Por predefinição, o ficheiro Module1.vb é criado no projecto do Visual Basic. Por predefinição, o ficheiro Program.cs é criado no projecto do Visual C#.
  4. Utilize ConsoleApplication1 como o nome na caixa Nome e, em seguida, clique em OK .
  5. Adicione uma referência ao espaço de nomes "System.ServiceProcess". Para o fazer, siga estes passos:
    1. No menu projecto , clique em Adicionar referência .
    2. Clique no separador .NET , clique em System.ServiceProcess e, em seguida, clique em OK .
  6. Substitua o código existente com o seguinte código.

    Nota Substitua o código no ficheiro Module1.vb no projecto do Visual Basic. Substituir o código de Program.cs ficheiro do projecto do Visual 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
    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. Prima CTRL + F5 para executar o programa.

Referências

Para obter mais informações sobre o espaço de nomes "System.ServiceProcess", visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/system.serviceprocess(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/system.serviceprocess(vs.71).aspx)
Para mais informações sobre o Visual Studio. NET, visite os newsgroups Usenet MSDN seguintes:
http://msdn.microsoft.com/newsgroups/default.aspx (http://msdn.microsoft.com/newsgroups/default.aspx)

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional
  • Microsoft SQL Server 2005 Express Edition
Palavras-chave: 
kbmt kbprb kbhowto KB912426 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 912426  (http://support.microsoft.com/kb/912426/en-us/ )