Problemas no resultSet

2 respostas
D

Eu sei que ele tá pesquisando pq quando o registro não está na tabela ele mostra…mas naum esta conseguindo trazer os valores…

Alguém pode dar uma olhadinha?

public Funcionario consultaFuncionario(Funcionario achar){
			int cod=0;
			String nome="";
			String funcao="";
			String setor="";
			double sal=1.0;
		try{
		   stmt=conect.getStatement();
		   ResultSet rs=
		   stmt.executeQuery("select * from CAD_Funcionario where ID_Matricula = " + achar.getMatricula() );
		   if (!rs.next()){
		   	JOptionPane.showMessageDialog(null,"Registro não Encontrado!");
		   }else{
		   while(rs.next()){
		   cod=rs.getInt("ID_Matricula");
		   nome=rs.getString("NM_Funcionario");
		   setor=rs.getString("NM_Setor");
		   funcao=rs.getString("NM_Funcao");
		   sal=rs.getDouble("VL_Salario");
		   }
		   }		
		}catch(SQLException ex){
		 System.out.println("Erro consulta: "+ex);
		}
		System.out.println("consula feita");
		Funcionario f=new Funcionario(cod,nome,setor,funcao,sal);
		return f;
		}

2 Respostas

C

Olá Diana,
Eu acho q é pq vc chama uma vez o rs.next() no primeiro if e depois novamente no while(rs.next()).
Se o resultado for um só, ele deve ser recuperado antes do rs.next() do while(), entendeu?
Ou seja, ele nao entra no while pq não tem uma segunda linha de resultados!
Tenta tirar o while(rs.next()) daí … acho q´vai dar certo!!!

Qqer coisa posta aki denovo!!!

C

Diana, tomei a liberdade de mudar um pouco o código de uma olhada. É uma das mil maneiras de se resolver isso.

public Funcionario consultaFuncionario(Funcionario achar){ int cod=0; String nome=""; String funcao=""; String setor=""; double sal=1.0; boolean showMessage = true; //variavel de ativação da mensagem try{ stmt=conect.getStatement(); ResultSet rs= stmt.executeQuery("select * from CAD_Funcionario where ID_Matricula = " + achar.getMatricula() ); while(rs.next()){ cod=rs.getInt("ID_Matricula"); nome=rs.getString("NM_Funcionario"); setor=rs.getString("NM_Setor"); funcao=rs.getString("NM_Funcao"); sal=rs.getDouble("VL_Salario"); showMessage = false; //como tem registros não ativa a mensagem } if(showMessage) JOptionPane.showMessageDialog(null,"Registro não Encontrado!"); }catch(SQLException ex){ System.out.println("Erro consulta: "+ex); } System.out.println("consula feita"); Funcionario f=new Funcionario(cod,nome,setor,funcao,sal); return f; }

Criado 25 de maio de 2004
Ultima resposta 28 de mai. de 2004
Respostas 2
Participantes 3