Como corrigir esse erro

3 respostas
L

OI pessoal blz. então eu tenho 1 dvd de video aulas do neri de Java SE I Estoque sem ser aquele de 2011, pra quem já assistiu deve ter
visto a aula 56 que ele ensina a corrigir o erro do JCombox eu fiz igualzinho e acho que não é erro de versão do netbeans porq a minha é a 7.0.1 e quando vai adicionar ou remover um registro ele faz normal mas não atualiza a jTable e no combo box sai normal mas dá
esses erros aqui:

Não conseguiu localizar via digitação,erro : [Microsoft][ODBC Driver Manager ] Estado de cursor inválido
Não localizou dados: [Microsoft][ODBC Driver Manager ] Estado de cursor inválido

meu código-fonte é esse:

public class cad_cidades extends javax.swing.JFrame {
     int navega = 0;
     conexao con_cidade;
     int inicia_combo = 0;
    public cad_cidades()  {
        initComponents();
        con_cidade = new conexao();
        con_cidade.conecta();
        con_cidade.executaSQL("select * from cidade");
    
        try
        {
         while(con_cidade.resultset.next())
            combo_pesquisa.addItem(con_cidade.resultset.getString("nome"));

         con_cidade.resultset.first();
         mostrar_dados();

    }
    catch (SQLException erro)
    {
     JOptionPane.showMessageDialog(null,"Dados não localizados"+erro);
    }

     preencher_jtable();
}

private void botao_primeiroActionPerformed(java.awt.event.ActionEvent evt) {                                               
      try
        {
         con_cidade.resultset.first();
         mostrar_dados();
         
    }
    catch (SQLException erro)
    {
     JOptionPane.showMessageDialog(null,"Dados não localizados "+erro);
    }
    }                                              

    private void botao_ultimoActionPerformed(java.awt.event.ActionEvent evt) {                                             
     try
        {
         con_cidade.resultset.last();
         mostrar_dados();
    }
    catch (SQLException erro)
    {
     JOptionPane.showMessageDialog(null,"Não foi possivel ir para o ultimo registro"+erro);
    }
    }                                            

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

    private void botao_novoActionPerformed(java.awt.event.ActionEvent evt) {                                           
     tf_codigo.setText("");
     tf_nome.setText("");
     combo_uf.setSelectedItem("RS");
     tf_nome.requestFocus();
     tf_codigo.setEditable(false);
    }                                          

    private void botao_salvarActionPerformed(java.awt.event.ActionEvent evt) {                                             
    //gravar dados
        try
    {
     String sqlinsert = "insert into cidade(nome,uf) values ('"+
         tf_nome.getText()+"','"+
         combo_uf.getSelectedItem()+"')";
     con_cidade.statement.executeUpdate(sqlinsert);
     JOptionPane.showMessageDialog(null,"Gravação realizada com sussesso");
     //atualiza o Resultset
     con_cidade.executaSQL("select * from cidade");
     atualiza_combo_box_cidade();
     con_cidade.resultset.first();
     mostrar_dados();
    }
    catch(SQLException erro)
    {
     JOptionPane.showMessageDialog(null,"Erro ao gravar o registro ..."+erro);
    }
    }                                            

    private void botao_deletarActionPerformed(java.awt.event.ActionEvent evt) {                                              
    try
    {
    String sql  = "select * from cidade Where codigo = "+tf_codigo.getText();
    con_cidade.executaSQL(sql);
    con_cidade.resultset.first();
    String nome ="Deletar a cidade: "+con_cidade.resultset.getString("nome")+"?";
    int opcao_escolhida = JOptionPane.showConfirmDialog(null,nome,"Exclusão ",JOptionPane.YES_NO_OPTION);
    if(opcao_escolhida == JOptionPane.YES_OPTION)
    {
      sql = "DELETE FROM cidade Where codigo ="+tf_codigo.getText();
      int conseguiu_excluir = con_cidade.statement.executeUpdate(sql);
      if(conseguiu_excluir == 1)
      {
        JOptionPane.showMessageDialog(null,"exlusão realizada com sucesso");
        //atualiza o resultset

        con_cidade.executaSQL("Select * from cidade");
        atualiza_combo_box_cidade();
        con_cidade.resultset.first();
        mostrar_dados();
      }
    }
   else
    return;
    
    }
    catch(SQLException erro)
    {
     JOptionPane.showMessageDialog(null,"Erro ao tentar excluir os dados... "+erro);
    }
    }                                             

    private void botao_alterarActionPerformed(java.awt.event.ActionEvent evt) {                                              
     try
     {
      String sql ="UPDATE cidade SET nome ='"+tf_nome.getText()+"',"+
              "uf = '"+combo_uf.getSelectedItem()+"' where codigo = "+tf_codigo.getText();
      con_cidade.statement.executeUpdate(sql);
      JOptionPane.showMessageDialog(null,"Alteração realizada com sucesso!");

      //atualiza o resultset
      
      atualiza_combo_box_cidade();
      con_cidade.resultset.next();
      mostrar_dados();

     }
     catch(SQLException erro)
     {
       JOptionPane.showMessageDialog(null,"Não consgui alterar os dados...");
     }
    }                                             

    private void combo_pesquisaActionPerformed(java.awt.event.ActionEvent evt) {                                               
      if(inicia_combo == 1) 
      {
        try
       {
      con_cidade.resultset.first();
      String igual = "n";
      while (igual == "n")
      {
       if(con_cidade.resultset.getString("nome").equals(combo_pesquisa.getSelectedItem()))
       {
        igual = "s";
       }
      else
       con_cidade.resultset.next();
      }
      tf_codigo.setText(con_cidade.resultset.getString("codigo"));
      mostrar_dados();
      atualiza_combo_box_cidade();
       }
      catch(SQLException erro)
      {
        JOptionPane.showMessageDialog(null,"Não conseguiu localizar via digitação,erro:"+erro);
      }    
        }
     inicia_combo=1;
    }                                              

    private void tf_pesquisaActionPerformed(java.awt.event.ActionEvent evt) {                                            
     try
      {
       con_cidade.resultset.first();
       String igual = "n";
       int tamanho_pesquisa = tf_pesquisa.getText().length();
       while(igual == "n")
       {
          String pesquisado = con_cidade.resultset.getString("nome").substring(0,(tamanho_pesquisa));

          if(pesquisado.equals(tf_pesquisa.getText()))
          {
            igual = "s";
          }
        else
            con_cidade.resultset.next();
       }
       //as linhas baixo mostra os dados da tabela
       tf_codigo.setText(con_cidade.resultset.getString("codigo"));
       mostrar_dados();
       combo_pesquisa.setSelectedItem(tf_nome.getText());
      }


       catch(SQLException erro)
       {
          JOptionPane.showMessageDialog(null,"Não conseguiu encontar via digitaçao,erro" +erro);
       }
    }                                           

    /**
    * @param args the command line arguments
    */

    

    // Variables declaration - do not modify                     
    private javax.swing.JButton botao_alterar;
    private javax.swing.JButton botao_anterior;
    private javax.swing.JButton botao_deletar;
    private javax.swing.JButton botao_novo;
    private javax.swing.JButton botao_primeiro;
    private javax.swing.JButton botao_proximo;
    private javax.swing.JButton botao_salvar;
    private javax.swing.JButton botao_ultimo;
    private javax.swing.JComboBox combo_pesquisa;
    private javax.swing.JComboBox combo_uf;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextField tf_codigo;
    private javax.swing.JTextField tf_nome;
    private javax.swing.JTextField tf_pesquisa;
    // End of variables declaration                   
public void mostrar_dados()
{
 try
        {
       
        tf_codigo.setText(con_cidade.resultset.getString("codigo"));
        tf_nome.setText(con_cidade.resultset.getString("nome"));
        combo_uf.setSelectedItem(con_cidade.resultset.getString("uf"));
    }
    catch (SQLException erro)
    {
        if(navega ==1)
         JOptionPane.showMessageDialog(null,"Olha, voce já está no primeiro registro");
        else if(navega  ==2)
        JOptionPane.showMessageDialog(null,"Olha, voce já está no ultimo registro");
        else
     JOptionPane.showMessageDialog(null,"Não conseguiu localizar os dados "+erro);
        navega = 0;
    }

  }
  public void atualiza_combo_box_cidade()
  {
   try
   {
       combo_pesquisa.removeAllItems();
       con_cidade.executaSQL("select * from cidade");
       while(con_cidade.resultset.next())
       combo_pesquisa.addItem(con_cidade.resultset.getString("nome"));

   }
   catch(SQLException erro)
   {
     JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
   }
  }
  public void preencher_jtable()
  {
    jTable1.getColumnModel().getColumn(0).setPreferredWidth(20);
    jTable1.getColumnModel().getColumn(1).setPreferredWidth(150);
    jTable1.getColumnModel().getColumn(2).setPreferredWidth(20);

    DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();
    modelo.setNumRows(0);

    try
    {
      while(con_cidade.resultset.next())
       modelo.addRow(new Object[]{con_cidade.resultset.getString("Codigo"),con_cidade.resultset.getString("nome"),con_cidade.resultset.getString("uf")});
       con_cidade.resultset.first();
       
    }
    catch(SQLException erro)
    {
       JOptionPane.showMessageDialog(null,"Erro ao listar dados "+erro);
    }
  }
}

se alguém vir como resolver esse erro por favor me ajude

3 Respostas

igor_ks

Bom, primeiramente… essas aulas do Neri, tome cuidado com elas, use elas apenas pra ter uma nocao de como faz,mas nao siga as regras que ele usa, pois ele programa em Java, igual programa em Delphi, nao tem mta atencao com padroes de projetos, clean code…

Respondendo a sua duvida, o erro esta na conexao com banco, onde nao esta achando o Driver do banco. A parte principal do codigo vc nao postou, que é a parte que configura a conexao com o banco, selecao do driver. O erro pode estar apenas faltando adicionar o driver jdbc em seu projeto

yhhik

isso no Exercito se chama ZARALHO.

Dica:use MVC em seus projetos…google tem muito material sobre isso.
se não for falta de Drive debug e veja ate que linha que ele vai.

jroberto.nsc

Questão de didática até pode ser útil,mas estude por por sites melhores
como: A caelum tem excelentes apostilas,pelo java2s.com ,coreservlets.com

Att,
[]S

Criado 11 de janeiro de 2012
Ultima resposta 11 de jan. de 2012
Respostas 3
Participantes 4