Erro em um update, que pelo jeito envolve até a parte de layout

4 respostas
fjucks

Galera, estou com esse erro: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[,161,138,217x25,layout=javax.swing.plaf.metal.MetalComboBoxUI$MetalComboBoxLayo' at line

o trecho de codigo que ocorre o erro , é no sql de update, mas nao sei o que pode ser se alguem souber me ajuda por favor

ai esta meu codigo
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        try{

       String sql = "update cidades set nome = '"+tf_nome.getText()+"',"+
                "uf = '"+combo_estado.getSelectedItem()+"'where codigo = "+combo_estado;

        con_cidade.statement.executeUpdate(sql);
        JOptionPane.showMessageDialog(null, "Alteração realizada com sucesso");

        con_cidade.executeSQL("select * from cidades");
        con_cidade.resultset.next();
        mostrar_dados();
        }catch(SQLException erro){
            JOptionPane.showMessageDialog(null, "Erro ao tentar alterar o registro...."+erro);
            System.out.println(erro);
        }
    }

alguém ja se deparou com esse erro??

4 Respostas

A

Se meus olhos de lince não me traem, seu problema está no where colado no restante da instrução. Arrumando ficaria isso:

String sql = "update cidades set nome = '"+tf_nome.getText()+"',"+ "uf = '"+combo_estado.getSelectedItem()+"' where codigo = "+combo_estado;

Mas procure usar PreparedStatement…

fjucks

eu mudei tbm, mas continuou dando o seguinte erro

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘[,89,210,194x25,layout=javax.swing.plaf.metal.MetalComboBoxUI$MetalComboBoxLayou’ at line 1

emmanuelrock

Manda imprimir a String “sql” e tenta executá-la no SGBD, é mais fácil de corrigir, você verá o que está realmente indo para o banco de dados.

Eric_Yuzo

O problema está no where:

"'where codigo = "+combo_estadoFazendo concatenação da String com combo box, é chamado o método toString de JComboBox, assim, está indo aquela String estranha com as propriedades do combo para sua query. Imagino que esteja querendo usar o índice, certo?

combo_estado.getSelectedIndex()

E vale reforçar a dica do Ademilton e usar PreparedStatement.

Criado 2 de fevereiro de 2011
Ultima resposta 2 de fev. de 2011
Respostas 4
Participantes 4