Dúvida nos Botões Anterior e Proximo!

4 respostas
A

Olá pessoal, gostaria de tirar uma dúvida meio fácil, pois estou iniciando...
É o seguinte:
Criei um cadastro de clientes e está funcionado blz, inserindo, salvando, editando e excluindo...
Mas eu notei que na hora da Navegação, mais especificamente nos botões Anterior e Próximo esta acontecendo um erro:

Quando eu abro o programa e vou para o cadastro de clientes, aparece o primeiro registro, até ai tudo bem, mas se eu clicar no botão anterior(logo apos abrir o cadastro de clietnes) ele dah um erro -> Before start of result set, ao inves de dizer -> Primeiro registro!, se eu clicar no botão anterior depois de ter rolado alguns registros ele n dah erro, só aparece esse erro logo quando abre a tela e eu clico no botão anterior, já tentei tudo aqui e não consigo tirar isso pois não queria que os usuarios vissem esse erro: lá vai o código!!
/*
 * clientes.java
 *
 * Created on 18 de Outubro de 2010, 14:47
 */

package cadastro;

/**
 *
 * @author  Alan Jones
 */
import java.lang.String;
import java.sql.SQLException;
import javax.crypto.NullCipher;
import javax.swing.JOptionPane;
import utilitarios.conexao;
public class clientes extends javax.swing.JFrame {
    int navega = 0;
    conexao con_clientes;
    
    public clientes() {
        initComponents();
        con_clientes = new conexao();
        con_clientes.conecta();
        con_clientes.executeSQL("select * from clientes");
        try
        {        
            con_clientes.resultset.first();
            mostrar_dados();
            }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
        }       
    }
    
                        

    private void botao_cad_clientes_editarActionPerformed(java.awt.event.ActionEvent evt) {                                                          
    try
    {
        String sql ="UPDATE clientes SET cli_nome ='"+txt_cad_clientes_nome.getText()+"',"+
                "cli_cpf = '"+txt_cad_clientes_cpf.getText()+"',"+
                "cli_rg = '"+txt_cad_clientes_rg.getText()+"',"+
                "cli_endereco = '"+txt_cad_clientes_endereco.getText()+"',"+
                "cli_bairro = '"+txt_cad_clientes_bairro.getText()+"',"+
                "cli_cep = '"+txt_cad_clientes_cep.getText()+"',"+
                "cli_uf = '"+comb_cad_clientes_estado.getSelectedItem()+"',"+
                "cli_telefone = '"+txt_cad_clientes_telefone.getText()+"',"+
                "cli_celular = '"+txt_cad_clientes_celular.getText()+"',"+
                "cli_observacao = '"+txt_cad_clientes_observacao.getText()+"' where cli_codigo ="+txt_cad_clientes_codigo.getText();
        con_clientes.statement.executeUpdate(sql);        
        JOptionPane.showMessageDialog(null,"Alteração realizada com sucesso!");
        
       con_clientes.executeSQL("Select * from clientes");
       con_clientes.resultset.last();
       mostrar_dados();
     }
     catch (SQLException erro)
     {
         JOptionPane.showMessageDialog(null,"Erro ao tentar alterar o registro...");
     }
    }                                                         

    private void botao_cad_clientes_excluirActionPerformed(java.awt.event.ActionEvent evt) {                                                           
    try
    {
        String sql = "select * from clientes Where cli_codigo = "+txt_cad_clientes_codigo.getText();
        con_clientes.executeSQL(sql);
        con_clientes.resultset.last();
        String nome = "Deletar o Cliente : "+con_clientes.resultset.getString("cli_nome")+" ?";
        int opcao_escolhida = JOptionPane.showConfirmDialog(null,nome,"Exclusão ",JOptionPane.YES_NO_OPTION);
        if (opcao_escolhida == JOptionPane.YES_OPTION)
        {
            sql = "DELETE FROM clientes Where cli_codigo ="+txt_cad_clientes_codigo.getText();
            int conseguiu_excluir = con_clientes.statement.executeUpdate(sql);
            if (conseguiu_excluir ==1)
            {
                JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");
                con_clientes.executeSQL("Select * from clientes");
                con_clientes.resultset.last();
                mostrar_dados();
            }
        }
        else
          return; 
    }
    catch (SQLException erro)
    {
        JOptionPane.showMessageDialog(null,"Erro ao tentar excluir o registro..."+erro);
     }
    }                                                          

    private void botao_cad_clientes_salvarActionPerformed(java.awt.event.ActionEvent evt) {                                                          
    try
    {
        String sqlinsert ="insert into clientes (cli_nome,cli_cpf,cli_rg,cli_endereco,cli_bairro,cli_cep,cli_uf,cli_telefone,cli_celular,cli_observacao) values ('"+
                txt_cad_clientes_nome.getText()+"','"+
                txt_cad_clientes_cpf.getText()+"','"+
                txt_cad_clientes_rg.getText()+"','"+
                txt_cad_clientes_endereco.getText()+"','"+
                txt_cad_clientes_bairro.getText()+"','"+
                txt_cad_clientes_cep.getText()+"','"+
                comb_cad_clientes_estado.getSelectedItem()+"','"+
                txt_cad_clientes_telefone.getText()+"','"+
                txt_cad_clientes_celular.getText()+"','"+
                txt_cad_clientes_observacao.getText()+"')";
                    
        con_clientes.statement.executeUpdate(sqlinsert);
        JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso!");
            
        //con_clientes.resultset = con_clientes.statement.executeQuery("Select * from clientes");
        con_clientes.executeSQL("Select * from clientes");
        con_clientes.resultset.last();
        mostrar_dados();
        }
        catch (SQLException erro)
        {
        JOptionPane.showMessageDialog(null,"Erro ao tentar gravar registro..."+erro);  
        }
    }                                                         

    private void botao_cad_clientes_inserirActionPerformed(java.awt.event.ActionEvent evt) {                                                           
        txt_cad_clientes_codigo.setText("");
        txt_cad_clientes_nome.setText("");
        txt_cad_clientes_cpf.setText("");
        txt_cad_clientes_rg.setText("");
        txt_cad_clientes_endereco.setText("");
        txt_cad_clientes_bairro.setText("");
        txt_cad_clientes_cep.setText("");
        comb_cad_clientes_estado.setSelectedItem("PB");
        txt_cad_clientes_telefone.setText("");
        txt_cad_clientes_celular.setText("");
        txt_cad_clientes_observacao.setText("");
        txt_cad_clientes_nome.requestFocus();
        txt_cad_clientes_codigo.setEditable(false);
        
    }                                                          

    private void botao_cad_clientes_ultimoActionPerformed(java.awt.event.ActionEvent evt) {                                                          
        try
        {        
            con_clientes.resultset.last();
            mostrar_dados();
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não foi possível ir para o último registro "+erro);
        }
    }                                                         

    private void botao_cad_clientes_antecessorActionPerformed(java.awt.event.ActionEvent evt) {                                                              
        try
        {        
            con_clientes.resultset.previous();
            mostrar_dados();
            navega = 1;
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não foi possível ir para o registro anterior"+erro);
        }
    }                                                             

    private void botao_cad_clientes_proximoActionPerformed(java.awt.event.ActionEvent evt) {                                                           
        try
        {        
            con_clientes.resultset.next();
            mostrar_dados();
            navega = 2;
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não foi possível ir para o próximo registro "+erro);
        }
    }                                                          

    private void botao_cad_clientes_primeiroActionPerformed(java.awt.event.ActionEvent evt) {                                                            
        try
        {        
            con_clientes.resultset.first();
            mostrar_dados();
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não foi possível ir para o primeiro registro "+erro);
        }
    }                                                           
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new clientes().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify                     
    private javax.swing.JButton botao_cad_clientes_antecessor;
    private javax.swing.JButton botao_cad_clientes_busca;
    private javax.swing.JButton botao_cad_clientes_editar;
    private javax.swing.JButton botao_cad_clientes_excluir;
    private javax.swing.JButton botao_cad_clientes_inserir;
    private javax.swing.JButton botao_cad_clientes_primeiro;
    private javax.swing.JButton botao_cad_clientes_procurar;
    private javax.swing.JButton botao_cad_clientes_proximo;
    private javax.swing.JButton botao_cad_clientes_salvar;
    private javax.swing.JButton botao_cad_clientes_ultimo;
    private javax.swing.JComboBox comb_cad_clientes_estado;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JLabel lbl_cad_clientes_bairro;
    private javax.swing.JLabel lbl_cad_clientes_celular;
    private javax.swing.JLabel lbl_cad_clientes_cep;
    private javax.swing.JLabel lbl_cad_clientes_codigo;
    private javax.swing.JLabel lbl_cad_clientes_cpf;
    private javax.swing.JLabel lbl_cad_clientes_endereco;
    private javax.swing.JLabel lbl_cad_clientes_estado;
    private javax.swing.JLabel lbl_cad_clientes_nome;
    private javax.swing.JLabel lbl_cad_clientes_observacao;
    private javax.swing.JLabel lbl_cad_clientes_rg;
    private javax.swing.JLabel lbl_cad_clientes_telefone;
    private javax.swing.JTextField txt_cad_clientes_bairro;
    private javax.swing.JTextField txt_cad_clientes_celular;
    private javax.swing.JTextField txt_cad_clientes_cep;
    private javax.swing.JTextField txt_cad_clientes_codigo;
    private javax.swing.JTextField txt_cad_clientes_cpf;
    private javax.swing.JTextField txt_cad_clientes_endereco;
    private javax.swing.JTextField txt_cad_clientes_nome;
    private javax.swing.JTextField txt_cad_clientes_observacao;
    private javax.swing.JTextField txt_cad_clientes_rg;
    private javax.swing.JTextField txt_cad_clientes_telefone;
    // End of variables declaration                   

    public void mostrar_dados()
    {
        try
        {        
            txt_cad_clientes_codigo.setText(con_clientes.resultset.getString("cli_codigo"));
            txt_cad_clientes_nome.setText(con_clientes.resultset.getString("cli_nome"));
            txt_cad_clientes_cpf.setText(con_clientes.resultset.getString("cli_cpf"));
            txt_cad_clientes_rg.setText(con_clientes.resultset.getString("cli_rg"));
            txt_cad_clientes_endereco.setText(con_clientes.resultset.getString("cli_endereco"));
            txt_cad_clientes_bairro.setText(con_clientes.resultset.getString("cli_bairro"));
            txt_cad_clientes_cep.setText(con_clientes.resultset.getString("cli_cep"));
            comb_cad_clientes_estado.setSelectedItem(con_clientes.resultset.getString("cli_uf"));
            txt_cad_clientes_telefone.setText(con_clientes.resultset.getString("cli_telefone"));
            txt_cad_clientes_celular.setText(con_clientes.resultset.getString("cli_celular"));
            txt_cad_clientes_observacao.setText(con_clientes.resultset.getString("cli_observacao"));
        }
        catch(SQLException erro)
        {
            if (navega == 1)
                JOptionPane.showMessageDialog(null,"Primeiro registro");
            else if (navega == 2)
                JOptionPane.showMessageDialog(null,"Último registro");
            else
                JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
                navega = 0;
        }
    }
    
    
}

Desde já agradeço pela atenção!

no aguardo... =)

4 Respostas

BrunoBastosPJ

antes de voltar verifique se este ja nao e o primeiro…

if(!con_clientes.resultset.isFirst) {
   con_clientes.resultset.last(); 
} else {
   JOptionPane.showMessageDialog("Este e o primeiro registro");
}

Faça o mesmo para o último usando o método isLast!

A

Opa Bruno, obrigado pela atenção…
Seria muito te pedir pra alocar dentro do codigo pra mim…
To iniciando e não consegui colocar sem dah erro…

Vlw cara…

Odyo

da mesma forma que você acessa o primeiro registro do banco no seu método :
botao_cad_clientes_primeiroActionPerformed(java.awt.event.ActionEvent evt)

nos métodos para anterior e próximo basta verificar se é o primeiro ou o último registro.
fazendo uma consulta.

A

Certo, mas alguem pode colocar o codigo do botão para eu testar?

Criado 10 de novembro de 2010
Ultima resposta 11 de nov. de 2010
Respostas 4
Participantes 3