Ajuda erro Can Not Issue Data Manipulation Statement With ExecuteQuery()[RESOLVIDO]

4 respostas
xDenTim

Olá a Todos estou tentando fazer uma tela de cadastro de usuário, porém estou recebendo o erro acima após clicar em registrar
segue o código abaixo

desde Já agradeço..

=)

private void btCadastrarActionPerformed(java.awt.event.ActionEvent evt) {
        
        
        if(tfNomeDeUsuario.getText().equals("") && pfSenha.getText().equals("") && pfConfirmeSenha.getText().equals(""))
        {
          JOptionPane.showMessageDialog(null, "os campos devem ser preenchidos !");
        }
       else
        {
            if(pfSenha.getText().equals(pfConfirmeSenha.getText()))
            {
                try 
                {
                    
                    if(conexao.resultset.next() && !tfNomeDeUsuario.getText().equals(""))
                    {
                      
                    String comandoSQL = "insert into usuarios (usu_nome,usu_senha,usu_setor)values('"+tfNomeDeUsuario.getText()+
                         "','"+pfSenha.getText()+
                         "','"+jcSetor.getSelectedItem()+"' );";   
                    
                    conexao.executaSQL("use sistema ;");
                    conexao.executaSQL(comandoSQL);
                    
                    JOptionPane.showMessageDialog(null,"Usuário Cadastrado com Sucesso !");
                    dispose();
                    new Login().show();
                    }
                    
                    else
                    {
                        JOptionPane.showMessageDialog(null, "Digite um Nome de Usuário !");
                        
                    }
                } 
                catch (SQLException erro) 
                {
                JOptionPane.showMessageDialog(null, erro);
                }
           }
           else
           {
               JOptionPane.showMessageDialog(null, "As Senhas Digitadas Nao São Iguais !");
               tfNomeDeUsuario.setText("");
               pfConfirmeSenha.setText("");
               pfSenha.setText("");
           }     
                
        }
    }

4 Respostas

drsmachado

Cade a classe que faz conexão ao banco e é responsável por executar a query?

xDenTim

Está Aqui…

public void executaSQL(String ComandoSQL) { try { statement = conexao.createStatement(); resultset = statement.executeQuery(ComandoSQL); } catch(SQLException erroComandoSQL) { JOptionPane.showMessageDialog(null,"Erro executar comando SQL"+ erroComandoSQL+" o Comando foi "+ComandoSQL); } }

drsmachado

Esqueça o uso de Statement. Ele só atrapalha. Prefire PreparedStatement.
Segundo, com executeQuery você está dizendo ao Statement que espera um ResultSet, o que não acontece com uma instrução insert.
Você precisa, para executar qualquer ação que não retorne ResultSets, utilizar executeUpdate (ou execute).

xDenTim

Obrigado

funcionou =)

Criado 3 de agosto de 2012
Ultima resposta 3 de ago. de 2012
Respostas 4
Participantes 2