Problemas no if

11 respostas
G

quando faço esse codigo sem o if ele funciona normalmente mais quando coloco o if ele cai no cacth, naum consigo achar o erro no debug.

try {
Connection conexao = cMy.conectar();

if (conexao == null) {
			JOptionPane.showMessageDialog(null, "Erro ao conectar com banco de dados");
		}
		
        String cmd = "SELECT * FROM controle";
		
		if (RadioButtonCliente.isSelected()) {
			cmd = cmd + "ORDER BY efCliente";
		} else if (RadioButtonCidade.isSelected()) {
			cmd = cmd +  "ORDER BY efCidade";
		}
		Statement comandoSQL = conexao.createStatement();
		
		 rs = comandoSQL.executeQuery(cmd);
		
	} catch (SQLException ex) {
		System.out.println("Problemas na conexao com a fonte de dados");
	}

}

valeu pessoal

11 Respostas

foia

Tenta colocar:

catch (Exception ex) { 
     ex.printStackTrace();
   }

e posta o erro novamente …

ViniGodoy

Não trate exceptions dessa forma. Senão fica difícil de achar os erros mesmo…
Leia:
http://blog.caelum.com.br/2006/10/07/lidando-com-exceptions/

rodrigo_salla

Prezado guildc…

Dentro do bloco catch você tem que colocar entre parenteses a excessão juntamante com uma referencia e depois dentro das chaves chama-la atraves de algum metodo para retorna-la, ex:

catch (SQLException ex)

{

ex.printStackTrace();// para imprimir o erro da pilha

}

ou

catch (SQLException ex)

{

ex.getMessage();// para imprimir no console a mensagem de erro

}

Vai colocando os demais erros, ok?
Rodrigo

G

Coloquei:
System.out.println(ex.getMessage());

e o erro eh:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘BY efCliente’ at line 1

ja da de ter uma ideia, podem postar vou ver o q faço por aqui

valeu galera

G

dei um espaço no by efcliente e ficou assim: " ORDER BY efCliente" e " ORDER BY efCidade" naum aparece mais erro nenhum so que ele naum esta selecionando conforme o botao selecionado esta pegando so o if (RadioButtonCliente.isSelected()) {cmd = cmd + " ORDER BY efCliente";

1112

guildc:
Coloquei:
System.out.println(ex.getMessage());

Evite fazer assim também, pois assim você terá apenas a mensagem da exceção, e não o trace completo de onde no seu código ela ocorre. Prefira usar da seguinte maneira:

ex.printStackTrace();
G

Intao coloque e naum aparece mais erro… mais ele seleciona apenas a primeira opção posso selecionar o outro botao q ele ainda fica no primeiro naum sei se eh pq ele esta no construtor e naum no botao em que estao usando o [color=blue]rs[/color]…

G

Tenta colocar seu código no Botão, além disso, o construtor é só para inicialização da classe, não sendo um método que pode ser executado toda hora, mas apenas uma vez.

Flw.

G

Vou tentar, mais no momento estou com problemas no pc logo volto a postar

veleu

iwallas

cara… vc tem q imprimir a variável cmd! pega a string gerada… joga no seu server sql… e ve se ele roda lá… se não rodar lá é pq vc ta montando uma instrução sql inválida… por isso nao tá funcionando… =) poe pra imprimir no catch

peczenyj

AH

cmd = SELECT * FROM controle;



cmd = cmd + ORDER BY efCliente;

LOGO cmd vale

SELECT * FROM controleORDER BY efCliente

Bom, se vc colocar um espaço entre o controle e o ORDER pode ser q funcione :wink:

Criado 7 de fevereiro de 2007
Ultima resposta 12 de fev. de 2007
Respostas 11
Participantes 8