Problemas na consulta

3 respostas
C

boa noite!

estou com um problema nesse codigo e não sei onde pode ser. faço uma consulta no banco sql server se eu digita o codigo certo ele passa, mas se eu digita o codigo errado ele não vai para a mensagem de erro e trava a aplicação! olha o codigo ai:
try{

            String cod = null;
            rs = c.stm.executeQuery("Select * from cliente where cli_cod_cartao = "+ tx_cod_cartao.getText());
               rs.next();
                cod = tx_cod_cartao.getText();
                  if (rs.getString("cli_cod_cartao").equals(cod)){
                     
                    this.dispose();
                    tela_opcoes tp = new tela_opcoes();
                    tp.setVisible(true);

                }else{
                   JOptionPane.showMessageDialog(null,"Problemas na identificação do Código");
                  } }

            catch(Exception e){
            
                
            }
quem souber onde esta o erro mostra ai pra mim por favor!

3 Respostas

Demys_Cota

você tem uma mensagem no else, mas se der uma exceção nada mais vai roda, então você deve por uma mensagem no bloco catch

try{  
  
            String cod = null;  
            rs = c.stm.executeQuery("Select * from cliente where cli_cod_cartao = "+ tx_cod_cartao.getText());  
               rs.next();  
                cod = tx_cod_cartao.getText();  
                  if (rs.getString("cli_cod_cartao").equals(cod)){  
                       
                    this.dispose();  
                    tela_opcoes tp = new tela_opcoes();  
                    tp.setVisible(true);  
  
                }else{  
                   JOptionPane.showMessageDialog(null,"Problemas na identificação do Código");  
                  } }  
  
            catch(Exception e){  
              
                   JOptionPane.showMessageDialog(null,"Erro na consulta");  
            }
CharlesAlves

Tais fazendo coisas redundantes e sem necessidade nesse codigo, primeiro pede ao banco pra retornar os registros em que o cli_cod_cartao seja igual ao tx_cod_cartao.getText(), depois faz um if pra fazer a mesma verificação, o correto seria algo do tipo

try{
	PreparedStatement statement = connection.prepareStatement("select cli_cod_cartao from cliente where cli_cod_cartao = ?);
	
	// Sua variavel não é uma constante por isso não deve
	// ser separada por underscore e sim usar o padrao
	// camelcase
	statement.setString(1, txCodCartao.getText());
	
	ResultSet rs = statement.executeQuery();
	
	// Verifica se foi retornado algo do banco de dados, indicando que
	// existe um registro em que o cli_cod_cartao é igual ao codigo informado
	if(rs.first()){
	
		// Mais uma vez camelcase
		TelaOpcoes tp = new telaOpcoes();
		tp.setVisivle(true);
		this.dispose();
	
	} else {
		JOptionPane.showMessageDialog(null,"Problemas na identificação do Código");
	}
	
} catch (Exception e){
	JOptionPane.showMessageDialog(null,"Erro na consulta");
}
C

valeu galera por responder a minha duvida e me ajudou muito!!! obrigado.

Criado 15 de maio de 2013
Ultima resposta 16 de mai. de 2013
Respostas 3
Participantes 3