Não navega nos registros da base de dados

2 respostas
javolatra
Bom dia, estou com dificuldade para navegar nos registro da minha base de dados, quando eu clico no butão "buttonAnterior", para voltar um registro, se eu estiver usando a condição while, nada acontece, se eu estiver usando a condição if, ele salta para o primeiro registro, o mesmo problema está acontecendo para saltar um registro a frente, quando clico no butão "buttonProximo", com a condição while, não acontece nada, quando eu uso a condição if, ele pula para oultimo registro. Alguem pode me ajudar a resolver esse problema.Obrigado. Aí está o código dos dois métodos.
//######### MÉTODO PARA ACESSAR O REGISTRO ANTERIOR NA BASE DE DADOS ##############################################################
    
    public void anteriorRegistro() {
        conexao.Conectar("jdbc:mysql://localhost:3306/avaliacao","root","123");
        try {
            conexao.rs = conexao.stmt.executeQuery("SELECT * FROM clientes");
            
            if (conexao.rs.previous()) {
                fieldCodigo.setText(conexao.rs.getString("idclientes"));
                fieldNome.setText(conexao.rs.getString("nome"));                   
                fieldCPF.setText(conexao.rs.getString("cpf"));                     
                fieldRG.setText(conexao.rs.getString("rg"));                       
                fieldEndereco.setText(conexao.rs.getString("endereco"));            
                fieldBairro.setText(conexao.rs.getString("bairro"));               
                fieldCidade.setText(conexao.rs.getString("cidade"));               
                comboEstado.setSelectedItem(conexao.rs.getString("estado"));       
                fieldCEP.setText(conexao.rs.getString("cep"));                     
                fieldDataNasc.setText(conexao.rs.getString("dataNascimento"));      
                fieldDataDoCadastro.setText(conexao.rs.getString("dataCadastro")); 
            }
            
        } catch(SQLException sqlex) {
            sqlex.printStackTrace();
        }
    }
// ##### MÉTODO PARA ACESSAR O PRÓXIMO REGISTRO DA BASE DADOS ####################################################################
    
    public void proximoRegistro() {
        conexao.Conectar("jdbc:mysql://localhost:3306/avaliacao","root","123");
        try {
            
            conexao.rs = conexao.stmt.executeQuery("select * from clientes");
            
            if(conexao.rs.next()) {
                fieldCodigo.setText(conexao.rs.getString("idclientes"));          
                fieldNome.setText(conexao.rs.getString("nome"));                  
                fieldCPF.setText(conexao.rs.getString("cpf"));                    
                fieldRG.setText(conexao.rs.getString("rg"));                     
                fieldDataNasc.setText(conexao.rs.getString("dataNascimento"));    
                fieldEndereco.setText(conexao.rs.getString("endereco"));          
                fieldBairro.setText(conexao.rs.getString("bairro"));              
                fieldCidade.setText(conexao.rs.getString("cidade"));              
                comboEstado.setSelectedItem(conexao.rs.getString("estado"));      
                fieldDataDoCadastro.setText(conexao.rs.getString("dataCadastro"));  
                fieldCEP.setText(conexao.rs.getString("cep"));                    
            }
        } catch(SQLException sqlex) {
            sqlex.printStackTrace();
            JOptionPane.showMessageDialog(null,"Erro de SQL");
        }
    }

2 Respostas

Marck

Pelo que entendi no seu código, vc se conecta ao banco toda vez que vai navegar no result set?
Tenta dar uma organizada nisso ai cara. Vc deve estar se perdendo pq sempre cria um novo ResultSet:

conexao.rs = conexao.stmt.executeQuery("SELECT * FROM clientes");

sendo que vc deveria navegar sempre no mesmo.

Tirando a linha de conexao e select do metodo, acredito que o restante esteja correto.

public void proximo(){

 if (conexao.rs.previous()) {  
                 fieldCodigo.setText(conexao.rs.getString("idclientes"));  
                 fieldNome.setText(conexao.rs.getString("nome"));                     
                 fieldCPF.setText(conexao.rs.getString("cpf"));                       
                 fieldRG.setText(conexao.rs.getString("rg"));                         
                 fieldEndereco.setText(conexao.rs.getString("endereco"));              
                 fieldBairro.setText(conexao.rs.getString("bairro"));                 
                 fieldCidade.setText(conexao.rs.getString("cidade"));                 
                 comboEstado.setSelectedItem(conexao.rs.getString("estado"));         
                 fieldCEP.setText(conexao.rs.getString("cep"));                       
                 fieldDataNasc.setText(conexao.rs.getString("dataNascimento"));        
                 fieldDataDoCadastro.setText(conexao.rs.getString("dataCadastro"));   
             }  
               
         } catch(SQLException sqlex) {  
             sqlex.printStackTrace();  
         }
javolatra

Valeu brother, era isso mesmo.

Criado 3 de janeiro de 2008
Ultima resposta 3 de jan. de 2008
Respostas 2
Participantes 2