Jump to content

Problema com base de dados ao correr aplicação através de executavel


Recommended Posts

Posted

Boa noite,

Eu fiz uma aplicação em C#, no visual studio, que, entre outras coisas, faz acessos a uma base de dados incluida no projecto.

A minha base de dados está feita no SQL server 2008 R2 e o meu problema é que, ao executar a aplicação através do visual studio tenho que fazer a conexão primeiro com a base de dados e funciona tudo.

O problema é ao executar a aplicação a partir do ficheiro executável já não consigo fazer os tais acessos à base de dados.

Alguém me consegue explicar pk?

Será que tenho que por a BD noutro formato?

Posted

Tipo logo no load do form eu tou a preencher uma dataGridView através de métodos de acesso à bd, como este:

public static IBindingList LoadAll()
        {
            try
            {
                DataSet ds = ExecuteQuery(GetConnection(false), "SELECT * FROM DadosVoo");


                IBindingList ret = new BindingList<DadosVoo>();

                foreach (DataRow r in ds.Tables[0].Rows)
                {
                    DadosVoo g = new DadosVoo(r);
                    ret.Add(g);
                }
                return ret;
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Erro BD", ex);
            }
        }

Ao arrancar do executavel isto funciona, nao da erro.

Mas depois quando quero remover uma linha da dgv, ao carregar no botao chama este método:

public static void DeleteVoo(int idv)
        {          

            try
            {
                DataSet ds = ExecuteQuery(GetConnection(false), "delete from DadosVoo where IDVoo = '"+idv+"';");
                Graficos.DeleteVoo(idv);
               
                
            }
            catch (Exception ex)
            {
                
                throw new ApplicationException("Erro BD", ex);
                
            }
        }

E Aqui é que apanha a excepçao e da "Erro BD" e não remove na BD, mas quando executo através do visual studio funciona. Não sei pk

Posted

Está o tal "Erro BD"!

Desconfio que seja por culpa da conexao com a BD sql, pk tipo ao abrir o projecto com o VS tenho que fazer a conexão à bd primeiro antes de executar o programa.

Ao correr o executavel sem ter aberto o VS ach oque de alguma forma nao ta a ser feita a conexão à base de dados :S

Posted

Ok, isso já precebemos, esse erro és tu que o estás a disparar aqui

throw new ApplicationException("Erro BD", ex);

Não sei qual é a tua intenção em disparar um erro durante um tratamento de erro...

O que queremos saber é o que está em ex.Message para te ajudarmos.

Pedro Martins

Não respondo a duvidas por PM

Posted

Nao te consigo dizer mais pk isto so dá a executar a aplicação através do executável, logo nao aparece mais nada pk so aparece a MEssageBox a dizer "Erro BD"

O problema deve ser de executar a aplicação se ter aberto o VS primeiro para fazer a conexão à bd, e isso não devia acontecer..

Posted

Então faz com que apareça na mensagem, troca o que tens por isto e experimenta.

throw new ApplicationException(ex.Message);

Pedro Martins

Não respondo a duvidas por PM

Posted

Eu sou apologista em fazer algo do género:

            catch (Exception ex)
            {
                // Aqui podes fazer um LOG enviar por email, se bem que uso o Elmah para registar excepções.
                throw;
                // Ao fazeres throw estás a relançar a MESMA excepção para trás
            }

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Posted

Viva Rechousa,

Dizes num post que usas o Elmah:

Eu sou apologista em fazer algo do género:

            catch (Exception ex)
            {
                // Aqui podes fazer um LOG enviar por email, se bem que uso o Elmah para registar excepções.
                throw;
                // Ao fazeres throw estás a relançar a MESMA excepção para trás
            }

Pelo pouco que li é usado em aplicações web, existe forma "directa" de se poder usar em windows form??

Obrigado!

  • 2 weeks later...
Posted (edited)

Olá Marco_5,

Desculpa só agora responder, só agora é que vi a tua mensagem 🙂

Viva Rechousa,

Dizes num post que usas o Elmah:

Pelo pouco que li é usado em aplicações web, existe forma "directa" de se poder usar em windows form??

Nunca utilizei Elmah para Windows Forms. Pelas pesquisas que fiz, encontrei este artigo que poderá ajudar-te.

http://www.codeproje...eption-Handling

Edited by Rechousa

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

  • 2 weeks later...
Posted

Olá Marco_5,

Desculpa só agora responder, só agora é que vi a tua mensagem 🙂

Nunca utilizei Elmah para Windows Forms. Pelas pesquisas que fiz, encontrei este artigo que poderá ajudar-te.

http://www.codeproje...eption-Handling

Não há problema e agradeço a resposta!

Vou dar uma olhadela no artigo, para ver a melhor solução a usar nestas situações.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.