Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Llaverola

é possivel duas querys dentro de um try?

Recommended Posts

Llaverola

O problkema é que só esta a dar a 1ª query. a 2ª ja testei no sql server e da...

por isso, alguem pode dizer o que se passa?

try

            {

                existe = verificaExistencia(username);

                if (existe == true)

                {

                    System.Windows.Forms.MessageBox.Show("Utilizador já existente!!! Insira outro.");

                }

                else

                {

                    SqlConnection conn = new SqlConnection(ConnectionString);

                    String sql = "INSERT INTO Utilizador(Tipo_id,Nome, Morada, Telefone1,Telefone2, Fax, Email, Webpage) VALUES('" + tipo1 + "','" + nome + "','" + morada + "','" + telefone1 + "','" + telefone2 + "','" + fax + "','" + email + "','" + webpage + "')";

                    String sql1 = "INSERT INTO Login(Tipo_id,Username, Password, Estado, Pergunta, Resposta) VALUES('1','teste','teste','0','sei la','as'";

                   

                    SqlCommand cmd = new SqlCommand(sql,conn);

                    SqlCommand cmd1= new SqlCommand(sql1, conn);

                    conn.Open();                 

                    cmd.ExecuteNonQuery();                 

                    cmd1.ExecuteNonQuery();

                    conn.Close();

                  // lblResultadoRegisto.Text = "Dados inseridos com sucesso!!!";

                }

            }

            catch

            {

                System.Windows.Forms.MessageBox.Show("ERRO A ACESSAR A BASE DE DADOS");

            }

Share this post


Link to post
Share on other sites
TheDark

É perfeitamente possível. Digo-te mais, esse código aqui funciona na perfeição.

Não está a dar nenhuma excepção no 1º ExecuteNonQuery?


Desaparecido.

Share this post


Link to post
Share on other sites
Llaverola

sim esta. imprime sempre a MESSAGEBOX e não sei pq. É sinal que esta a haver um erro ne?

Share this post


Link to post
Share on other sites
jpaulino

Se te mostra a mensagem é porque está a dar-te um erro!

Durante os testes não se colocam mensagens personalizadas mas sim a exception (que indica qual é o erro).

Altera lá e mostra que erro está a dar.

Share this post


Link to post
Share on other sites
Llaverola

Da-me um exemplo de como usar a exception...Nunca a usei....

Ele esta a fazer o que eu quero mas mm assim vai para o catch...

Share this post


Link to post
Share on other sites
jpaulino

O que disse é que deves mostrar a mensagem da exception, que neste caso é mais ou menos isto:

        try
        {            
           // Qualquer coisa
        }
        catch (Exception e)
        {
            Console.WriteLine("{0} Exception.", e);
        }

Share this post


Link to post
Share on other sites
Llaverola

diz uma coisa: Se ele entra no catch , é sinal q esta a dar um erro?

é q no meu projecto ele entra sempre no catch e n percebo pq. é q esta a inserir e a fazer td o k eu kero...

Share this post


Link to post
Share on other sites
jpaulino

diz uma coisa: Se ele entra no catch , é sinal q esta a dar um erro?

é q no meu projecto ele entra sempre no catch e n percebo pq. é q esta a inserir e a fazer td o k eu kero...

Sim, é porque detectou um erro. E qual é a mensagem que dá ?

Podes substituir o Console.WriteLine por uma MessageBox.

Share this post


Link to post
Share on other sites
Llaverola

ja fiz isso. substitui por uma messagebox e a message box aparece sempre :S

ele esta a fazer o q eu quero mas..vejo q da um erro qq...olho pro codigo e n vejo erro nenhum

Share this post


Link to post
Share on other sites
Duffy

Boas, para começar podias  inicializar a ligação fora do try, dentro do try fazias apenas os cmd.ExecuteNonQuery();, depois na segunda query falta-te um ")".

Share this post


Link to post
Share on other sites
skm

So mais uma coisita.

Não uses conctenação de strings. Usa antes o StringBuilder.

Sempre que se contactena duas strings o que é feito internamente é:

  • É criado um um StringBuilder
  • É feito o append das duas strings
  • O StringBuilder é convertido para string

Ao usares directamente o StringBuilder evitas isso. Geralmente usa-se concatenação de strings para coisas  pequenas.

StringBuilder property = new StringBuilder();

property.Append("a");
property.Append("n");

String a = property.ToString();

Ficas com uma leitura mais facil


"There are two kinds of programmers. Those who write something to get the work done and those who want to write good code."João BrandãoWebsite e blog: http://jamab.blogspot.com/

Share this post


Link to post
Share on other sites
Llaverola

e o que é q akilo q eu tou a fazer tem a ver com concatenação de strings? o problema é q ele faz td o k eu kero, mas entra sempre no catch. e gostava de saber o porquÊ...

Share this post


Link to post
Share on other sites
skm

quando entra no catch deve dar uma mensagem de erro

posta aqui qual é... so assim é possivel ajudar


"There are two kinds of programmers. Those who write something to get the work done and those who want to write good code."João BrandãoWebsite e blog: http://jamab.blogspot.com/

Share this post


Link to post
Share on other sites
Duffy

Já meteste o parêntesis no final desta query?

String sql1 = "INSERT INTO Login(Tipo_id,Username, Password, Estado, Pergunta, Resposta) VALUES('1','teste','teste','0','sei la','as'";

Share this post


Link to post
Share on other sites

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

×

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.