Erro "no data found" JDBC

1 resposta
edipokbelo

Estou fazendo um trabalho da faculdade, onde tenho um formulario que faz uma consulta no bd e retorna os dados em JTextField, só que ele não retorna o telefone e dá o erro "No data Found".O bd é Access.
E funciona da seguinte forma, se o CheckBox chkNome estiver seleciona, ele faz a busca por NOME, senão ele busca por TELEFONE.

public void pressionouListar2(String parteNomeTelefone) {
		 try {
	 	      String url = "jdbc:odbc:Pizzaria";
			  String usuario = "";
			  String senha = "";
			  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			  Connection con = DriverManager.getConnection(url,usuario,senha);
			  
			  if(chkNome.isSelected()){
				  PreparedStatement pst = con.prepareStatement("SELECT * FROM Cliente WHERE nm_Cliente LIKE ? ");
				  pst.setObject(1,"%" + txtNomeTelefone.getText() + "%");
				  ResultSet rs = pst.executeQuery();
				  rs.next();		
				  	if(rs.getRow() == 0){
				  		JOptionPane.showMessageDialog(null,"NAO TEM NADA");
			    
				  	}
				  	else{
				  		  txt.setText(rs.getString("cd_Telefone"));
				  		  txtNome.setText(rs.getString("nm_Cliente"));
			       	                                  txtEndereco.setText(rs.getString("ds_Endereco"));
			       	                                  txtNumero.setText(rs.getString("cd_NumeroCasa"));
			       	                                  txtComplemento.setText(rs.getString("ds_Complemento"));
			       	                                  txtCidade.setText(rs.getString("nm_Cidade"));
			       	                                  txtBairro.setText(rs.getString("nm_Bairro"));
 			       	                                  txtCelular.setText(rs.getString("cd_Celular"));
			       	                                  txtCep.setText(rs.getString("cd_Cep"));
			       	                                  txtTelefone.setText(rs.getString("cd_Telefone"));
				   }				
				   pst.close();      
				   con.close();
			 }
			  else{
				  PreparedStatement pst = con.prepareStatement("SELECT * FROM Cliente WHERE cd_Telefone =? ");
				  pst.setObject(1,txtNomeTelefone.getText());
				  ResultSet rs = pst.executeQuery();
				  rs.next();		
				  	if(rs.getRow() == 0){
				  		JOptionPane.showMessageDialog(null,"NAO TEM NADA");
			    
				  	}
				  	else{
				  		txt.setText(rs.getString("cd_Cliente"));
				   }				
				   pst.close();      
				   con.close();
			  }
		     
		    }
	        catch (Exception e) {
		      JOptionPane.showMessageDialog(null,"Erro, verifique: "+e.getMessage());
	     }
	}
}

1 Resposta

R

Não use [color=red]if(rs.getRow() == 0){[/color], use [color=blue]if(rs.next()){[/color].

Criado 26 de outubro de 2009
Ultima resposta 27 de out. de 2009
Respostas 1
Participantes 2