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

Llaverola

é possivel duas querys dentro de um try?

15 mensagens neste tópico

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");

            }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É 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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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);
        }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma vez mais ... qual é a mensagem que dá ? A mensagem é o erro!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ")".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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Ê...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

quando entra no catch deve dar uma mensagem de erro

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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'";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora