Problema com edição de banco de dados. Urgente[RESOLVIDO]

9 respostas
V

Fala galera,
Estou precisando editar uma determinada linha do banco , porém está dando um erro.
Alguém pode me ajudar?
O erro que da é o seguinte:

erro editando usuarios: Can not issue data manipulation statements with executeQuery().

Tentei da maneira que está comentada mais tb não deu certo

public void EditarUsuario(Cliente cliente, Endereco end, String novoNome){
        String sql = null;
        Statement stmt = null;
        ResultSet rs = null;

         //sql = "UPDATE managementCommerce.clientes set nome = fred WHERE nome = claudio";
         sql = "UPDATE managementCommerce.clientes set nome '"+cliente.getNome() + "','" + end.getRua() + "','" + end.getNumero() + "','" + end.getComplemento() + "', '" + end.getBairro() + "', '" + end.getCep() + "', '" + end.getReferencia() + "', '" + cliente.getTelFixo() + "', '" + cliente.getTelCelular() + "' where nome = '" +novoNome+"'";
       try {
           stmt = this.conn.createStatement();
            rs  = stmt.executeQuery(sql);
       } catch(SQLException e){
            System.out.println("erro editando usuarios: " + e.getMessage());

        } finally {
            try {
                // fecha o stmt e o rs
                if(stmt != null) stmt.close();
                if(rs != null) rs.close();
            } catch (SQLException e){
                System.out.println("erro ao tentar fechar o stmt e o rs: " + e.getMessage());
            }
        }
        
    }

9 Respostas

Anime

Oi,

Qual é o erro, imprima o StackTrace…

catch(SQLException erro) {  
        JOptionPane.showMessageDialog(null,"Erro,ao listar");  
        erro.printStackTrace(); //isso vai imprimir a pilha de exceções no console, indicando, dentre outras informacoes, a linha que deu problema.  
    }
V

aparece isso

java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
erro editando usuarios: Can not issue data manipulation statements with executeQuery().
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
        at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:434)
        at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1390)
        at bancoDeDados.BancoDeDados.EditarUsuario(BancoDeDados.java:149)
        at visao.GUIAlteraDadosCliente.jButton2ActionPerformed(GUIAlteraDadosCliente.java:248)
        at visao.GUIAlteraDadosCliente.access$000(GUIAlteraDadosCliente.java:25)
        at visao.GUIAlteraDadosCliente$1.actionPerformed(GUIAlteraDadosCliente.java:218)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Anime

O statement nao está operando o metodo executequery(sql);

statement.executeQuery( update );  

   statement.executeUpdate( update );  // mude para Update

Nesse tutorial ensina como fazer de um jeito mais simples e tb mais usado…

http://mballem.wordpress.com/2011/02/21/utilizando-swing-com-banco-de-dados/

V
rs  = stmt.executeUpdate(sql);

coloquei isso e ele da erro de tipos incompatíveis

Anime

vasco.fred:
rs = stmt.executeUpdate(sql);

coloquei isso e ele da erro de tipos incompatíveis

Coloca assim…

rs  = stmt.execute(sql);
V

também aparece tipos incompatíveis.
Não entendo o pq disso!

S

ola,

reveja sua string sql voce nao esta informado os campos que devem ser atualizado.

UPDATE nomeTable SET campo1 = "", campo2 = "" WHERE campo = "";

At+

V

Consegui resolver anime,
Obg.

fiz isso.

stmt = this.conn.createStatement();
stmt.executeUpdate(sql);
Anime

Que bom… :stuck_out_tongue:

Criado 31 de março de 2011
Ultima resposta 31 de mar. de 2011
Respostas 9
Participantes 3