none
Tratamendo de erro firebird RRS feed

  • Pergunta

  • Olá pessoal, eu estou tentando fazer um tratamento de erro ao conectar com o banco, mas acho que não estou fazendo isso do jeito certo.
    quando eu coloco a senha errada ele não entra no comando catch, da um erro direto como se não houvesse o comando.

    private void btnTestConn_Click(object sender, EventArgs e)
            {
                FbConnection conneccao = new FbConnection();
                try
                {
                    conneccao.ConnectionString = "User=" + txbUsuario.Text + "; Password=" + txbSenha.Text + "; Database=" + txbLocal.Text + "; DataSource=localhost;Port=3050;Dialect=3";
                    conneccao.Open();
                    if (conneccao.State == ConnectionState.Open)
                    {
                        MessageBox.Show("Teste de conecção ok!", "Conecção", MessageBoxButtons.OK);
                    }
                }
                catch (ArgumentException Erro)
                {
                    // Faz o tratamento do erro.
                }
                finally
                {
    
                }
                conneccao.Close();
            }

    esse é o código que eu estou usando, alguém pode me dar uma outra ideia.

    terça-feira, 27 de agosto de 2013 21:45

Respostas

  • Eliel bom dia !

    Já tentou utilizar o FbException ? ao invés de Exception ou  ?  ArgumentException  ?

    private void btnTestConn_Click(object sender, EventArgs e)
    {
                FbConnection conneccao = new FbConnection();
                try
                {
                    conneccao.ConnectionString = "User=" + txbUsuario.Text + "; Password=" + txbSenha.Text + "; Database=" + txbLocal.Text + "; DataSource=localhost;Port=3050;Dialect=3";
                    conneccao.Open();
                    if (conneccao.State == ConnectionState.Open)
                    {
                        MessageBox.Show("Teste de conecção ok!", "Conecção", MessageBoxButtons.OK);
                    }
                }
                catch (FbException Erro)
                {
                    // Faz o tratamento do erro.
                }
                finally
                {
    
                }
                conneccao.Close();
       }

    veja se lhe ajuda, 


    Afonso Fernandes

    • Marcado como Resposta Eliel F. C. _ quinta-feira, 29 de agosto de 2013 17:17
    quinta-feira, 29 de agosto de 2013 13:36

Todas as Respostas

  • Quando ele não consegue abrir a conexão, ele não irá gerar uma Exception.

    Utilize o if:

     if (conneccao.State == ConnectionState.Open)
    {
         \\Deu certo
    }
    else
    {
        \\ Não conectou
    }

    Creio eu que ele irá apenas assumir o status ConnectionState.Close.

    quarta-feira, 28 de agosto de 2013 12:23
  • Então João, desculpa por demorar pra voltar eu estava sem net.

    Esse método não funcionou aqui. Antes dessa condição eu devo abrir a conneccao para saber o status dela.
    Se por ventura o usuário coloca a senha errada ele gera um erro no conneccao.Open(); e trava a execução do sistema.

    Eu não estou conseguindo fazer com que, quando ocorra o erro ela entre na função Catch, para que execução não seja interrompida, e eu possa tratar essa exception.

    Detalhe com o Banco de Dado Oracle eu não tinha esse problema. Só com o FireBird que eu vi isso.

    quinta-feira, 29 de agosto de 2013 10:34
  • Eliel bom dia !

    Já tentou utilizar o FbException ? ao invés de Exception ou  ?  ArgumentException  ?

    private void btnTestConn_Click(object sender, EventArgs e)
    {
                FbConnection conneccao = new FbConnection();
                try
                {
                    conneccao.ConnectionString = "User=" + txbUsuario.Text + "; Password=" + txbSenha.Text + "; Database=" + txbLocal.Text + "; DataSource=localhost;Port=3050;Dialect=3";
                    conneccao.Open();
                    if (conneccao.State == ConnectionState.Open)
                    {
                        MessageBox.Show("Teste de conecção ok!", "Conecção", MessageBoxButtons.OK);
                    }
                }
                catch (FbException Erro)
                {
                    // Faz o tratamento do erro.
                }
                finally
                {
    
                }
                conneccao.Close();
       }

    veja se lhe ajuda, 


    Afonso Fernandes

    • Marcado como Resposta Eliel F. C. _ quinta-feira, 29 de agosto de 2013 17:17
    quinta-feira, 29 de agosto de 2013 13:36
  • Nossa como pode!!!

    Era esse meu problema muito obrigado.

    quinta-feira, 29 de agosto de 2013 17:17