Botão excluir java banco de dados em access

2 respostas
Lelepunk6

Olá pessoal.

Estou fazendo um sistema de cadastro de funcionários bem básico em JAVA, utilizando o NetBeans como ferramenta desenvolvedora e banco de dados em access(obs.: é um trabalho de escola, o professor foi quem decidiu que banco de dados utilizar). Bem, o meu problema é o seguinte: Não consigo fazer o botão "Excluir" funcionar :? . Toda vez que tento executar ele dá o seguinte erro...

[img]C:\Documents and Settings\Administrador\Meus documentos\Minhas imagens[/img]

(Erro ao tentar excluir o Registro...java.sql.SQLException:[Microsoft][Driver ODBC para Microsoft Access]Parâmetros insuficientes. Eram esperados 1)

Por favor gente, tentem me dar uma ajuda.

Vou postar o código também

private void jButtonExcluirRegistroFuncActionPerformed(java.awt.event.ActionEvent evt) {                                                           
        // TODO add your handling code here:
         try
         {
            String sql = "select * from funcionarios where codfuncionario ="+jTextFieldCodFuncionario.getText();
            con_funcionarios.executeSQL(sql);
            con_funcionarios.resultset.first();
            String nome = "Deletar o cliente ;"+con_funcionarios.resultset.getString("nomefuncionario")+"?";
            int opcao_escolhida = JOptionPane.showConfirmDialog(null,nome,"Exclusão",
                    JOptionPane.YES_NO_OPTION);
            if (opcao_escolhida == JOptionPane.YES_OPTION)
            {
              sql = "delete from funcionarios where codfuncionarios = " +jTextFieldCodFuncionario.getText();
              int conseguiu_excluir = con_funcionarios.statement.executeUpdate(sql);
              if (conseguiu_excluir == 1)
              {

                  JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");
                  con_funcionarios.executeSQL("select * from Cliente");
                  con_funcionarios.resultset.first();
                  mostrarDados();
              }
              else
                return;
            }
        }
              catch(SQLException erro)
              {
                JOptionPane.showMessageDialog(null,"Erro ao tentar excluir o Registro..."+erro);
              }
        
          
    }

Espero que tenha postado certo.

Desde já, agradeço.

2 Respostas

fredsilva.sistemas
olá, me responde uma coisa: o codfuncionario é do tipo Inteiro? Se for, é aí que está o problema, pois o jTextFieldCodFuncionario.getText() retorna uma String. Então vc deve fazer o seguinte:
Integer.parseInt(jTextFieldCodFuncionario.getText());
Isso converte de String para Inteiro. Ficaria assim:
private void jButtonExcluirRegistroFuncActionPerformed(java.awt.event.ActionEvent evt) {                                                             
        // TODO add your handling code here:   
         try   
         {   
            String sql = "select * from funcionarios where codfuncionario ="+Integer.parseInt(jTextFieldCodFuncionario.getText());   
            con_funcionarios.executeSQL(sql);   
            con_funcionarios.resultset.first();   
            String nome = "Deletar o cliente ;"+con_funcionarios.resultset.getString("nomefuncionario")+"?";   
            int opcao_escolhida = JOptionPane.showConfirmDialog(null,nome,"Exclusão",   
                    JOptionPane.YES_NO_OPTION);   
            if (opcao_escolhida == JOptionPane.YES_OPTION)   
            {   
              sql = "delete from funcionarios where codfuncionarios = " +Integer.parseInt(jTextFieldCodFuncionario.getText());   
              int conseguiu_excluir = con_funcionarios.statement.executeUpdate(sql);   
              if (conseguiu_excluir == 1)   
              {   
  
                  JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");   
                  con_funcionarios.executeSQL("select * from Cliente");   
                  con_funcionarios.resultset.first();   
                  mostrarDados();   
              }   
              else   
                return;   
            }   
        }   
              catch(SQLException erro)   
              {   
                JOptionPane.showMessageDialog(null,"Erro ao tentar excluir o Registro..."+erro);   
              }   
           
             
    }

Lembrando se o codfuncionario for do tipo Inteiro (Integer).
Espero ter ajudado!
T+

bestlinux

Para complementar a resposta do amigo acima, não esqueça de fazer uma verificação antes de executar o comando DELETE. Verifique se realmente existe (ou digitaram) o código para ser exlcluido.

Criado 8 de dezembro de 2009
Ultima resposta 9 de dez. de 2009
Respostas 2
Participantes 3