none
Verificar se existe conexão com SQL Server - C#

    Question

  • Boa tarde galera,

    Eu quero fazer um código em C# aonde eu consiga verificar se existe conexão com uma determinada string de conexão...

    Eu só quero ver se o sistema consegue ou não conectar no banco, não precisa nem fazer nenhum Select ou algo parecido só quero saber se existe

    conexão com o bando de dados.

    Estou usando C# - Windows Forms - SQL Server 2005

    Alguem tem alguma ideia?

    Wednesday, July 14, 2010 4:41 PM

Answers

  • Guilherme,

    Você precisa tratar a exception... Algo como:

    try
    {
      con.ConnectionString ="server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;";  
    
      con.Open();
    }
    catch (Exception)
    {
      MessageBox.Show("Sua mensagem");
    }
    

    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    • Proposed as answer by Latino Wednesday, July 14, 2010 5:38 PM
    • Marked as answer by Guilherme Golfetto Thursday, July 15, 2010 11:30 AM
    Wednesday, July 14, 2010 5:04 PM
    Moderator

All replies

  • boas,

    tenta estabelecer a ligação, faz o open() e depois teste o connection
      
       con.ConnectionString ="server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;";   

        con.Open();

        if (con.State == ConnectionState.Open)
        {
        }


    espero ter ajudado.
    Wednesday, July 14, 2010 4:47 PM
  • Olá Luis,

    Eu fiz esse esquema só que ele acaba gerando uma mensagem de erro por não ter achado a conexão na hora do con.open()...só que eu não queria

    que mostrasse uma mensagem de erro mas simplesmente eu colocaria uma mensagem minha para aparecer para o usuário.

     

    Ele da erro da na hora que vai abrir(Con.Open) tem algum jeito ou função aonde ele realiza uma estrutura e retorna se existe conexão ou não?

    Alguem tem alguma ideia?

    Wednesday, July 14, 2010 4:54 PM
  • Guilherme,

    Você precisa tratar a exception... Algo como:

    try
    {
      con.ConnectionString ="server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;";  
    
      con.Open();
    }
    catch (Exception)
    {
      MessageBox.Show("Sua mensagem");
    }
    

    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    • Proposed as answer by Latino Wednesday, July 14, 2010 5:38 PM
    • Marked as answer by Guilherme Golfetto Thursday, July 15, 2010 11:30 AM
    Wednesday, July 14, 2010 5:04 PM
    Moderator
  • Olá André,

     

    Era isso mesmo que estava fazendo e agora deu certo...aproveitando o tópico estou com uma outra dúvida alguém sabe me dizer como eu posso atualizar em tempo de execução o meu arquivo app.config que guarda a minha string de conexão?

    O que eu estou fazendo é o seguinte:

    O meu sistema vai rodar em laptop aonde o usuário poderá estar conectado na rede da empresa ou não. Então eu fiz que quando o sistema inicia naquela tela de Splash eu realizo uma condição para ver se ele tem acesso ao banco da empresa(no servidor) se tiver eu reescrevo o arquivo app.config só que o problema agora ta sendo atualizar ele em tempo de execução...em alguns lugares me disseram que só será possivel se reiniciar a aplicação. Só que gostaria de fazer tudo em tempo de execução para que o usuário não veja nada!

    Alguem tem alguma ideia?

    Wednesday, July 14, 2010 5:23 PM
  • Oi Guilherme,

    Na sua função onde você verifica se o usuário consegue se conectar na rede da empresa ou não, você coloca uma lógica para colocar em uma variável global a conexão adequada.

    Mas não reescreva o app.config.


    Latino
    Wednesday, July 14, 2010 5:43 PM
  • Ola Latino,

     

    Estou tentando reescrever o app.config porque todo o meu projeto busca conexão nele (consultas, reportviewer, dataset..tudo) se eu tiver que colocar uma váriavel global terie que alterar toda a lógica do projeto.

     

    Então eu pensei de atualizar o arquivo aap.config para quando tiver na rede ou fora(usaria localhost)

    Existem contra-indicações para reescrever o arquivo app.config?

    Alguem tem alguma ideia de como posso fazer isso?

    Wednesday, July 14, 2010 5:55 PM
  • Guilherme,

    Você perguntou sobre contra-indicações e por quê não dá pra recarregar o app.config sem reiniciar a aplicação... Sugiro que dê uma lida no conteúdo deste link, que responde as suas perguntas:

    http://blogs.msdn.com/b/junfeng/archive/2005/02/20/376880.aspx

    Outra coisa que peço é que foquemos somente em uma dúvida por post para organizarmos melhor o fórum, OK? Conto com sua ajuda nas próximas dúvidas... :)


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    Wednesday, July 14, 2010 9:45 PM
    Moderator
  • Olá André,

     

    Era isso mesmo que estava fazendo e agora deu certo...aproveitando o tópico estou com uma outra dúvida alguém sabe me dizer como eu posso atualizar em tempo de execução o meu arquivo app.config que guarda a minha string de conexão?

    O que eu estou fazendo é o seguinte:

    O meu sistema vai rodar em laptop aonde o usuário poderá estar conectado na rede da empresa ou não. Então eu fiz que quando o sistema inicia naquela tela de Splash eu realizo uma condição para ver se ele tem acesso ao banco da empresa(no servidor) se tiver eu reescrevo o arquivo app.config só que o problema agora ta sendo atualizar ele em tempo de execução...em alguns lugares me disseram que só será possivel se reiniciar a aplicação. Só que gostaria de fazer tudo em tempo de execução para que o usuário não veja nada!

    Alguem tem alguma ideia?


    @Guilherme

    Voce deveria fechar este thread e comecar um novo. Assim voce ajuda o forum e outros usuarios que tiverem o teu problema ou duvida ou curiosidade.

    O André Alves de Lima deveria dizer-te isto.

    Quando se faz uma pergunta e ela for respondida a melhor coisa a fazer e marcar como respondida e comecar um novo thread.

    Obrigado.

     


    Just Be Humble Malange!
    Wednesday, July 14, 2010 10:01 PM
    Moderator
  • Malange,

    Pois foi exatamente o que eu disse a ele na minha última resposta...

    Outra coisa que peço é que foquemos somente em uma dúvida por post para organizarmos melhor o fórum, OK? Conto com sua ajuda nas próximas dúvidas... :)
    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    Wednesday, July 14, 2010 10:12 PM
    Moderator
  • Malange e Andre,

     

    Vocês estão certos...mais adiante vou abrir uma nova thread para esse novo assunto...

     

    Grato!

    Thursday, July 15, 2010 11:36 AM