Update Banco Mysql

9 respostas
kuroneko

Bom galera alguem poderia me passar um exemplo prático para fazer o update no banco?

meu problema é que por exemplo, eu to pegando um código que esta num combo box, esse código vai determinar a linha a ser atualizada.

como eu passo esse código que ta no combo box pro sql ?

tenho o resultset montado já mas não sei como mandar o dado do combobox(que vai tar em uma variável, não sei se é necessário jogar para a variável antes)

alguem pode me dar um exemplo simples so passando o dado do combo box pra ser usado no sql e um exemplo de comando de update e como executar a query ??

obrigado

meu código por via das dúvidas

try{
        
       ConMySql conn = new ConMySql();
       conn.conecta();
       
       String cod = (String) selectUpd.getSelectedItem();
       
       PreparedStatement stm = (PreparedStatement) conn.getConexao().createStatement();
       ResultSet rs = stm.executeQuery("Update concursos (NomeConcurso, Banca) where (CodConcurso = ?)"); 
       
       
       rs.updateString(1, NomeConcurso.getText());
       rs.updateString(2, BancaConcurso.getText());
     
       rs.updateRow();
       rs.close();
       ConMySql.getConexao().close();

     }catch(Exception e){
   }
    
    NomeConcurso.setText("");
    BancaConcurso.setText("");

9 Respostas

guilhermehkr

Se foi o que entendi, você deseja setar o código do concurso que esta na variável cod no sql, certo!?

se for isso, este é o código: stm.setString(1, cod);

kuroneko

yup, é isso mesmo

so com esse comando que você passou já funciona ok?

de resto ta tudo certo, inclundo o sql ??

to fazendo do jeito q você falo e não ta atualizando não ;\

guilhermehkr

Era para ser somente isto sim.

então, a query esta errada.
na verdade se fosse update direito na query como esta escrito, você deveria fazer assim:

update concursos set nomeConcurso = ? ,banca = ? 
where codConcurso = ?

porém você utilizou outro modo de fazer update, o qual você precisa fazer uma query de select ao invéz de update (eu não tenho certeza disto, afinal não mexo com jdbc, e quando mexi não fazia updates desta forma, somente da forma diretamente na query …)

Então, eu acho que você deveria fazer assim:

ResultSet rs = stm.executeQuery("select NomeConcurso, Banca from concursos where CodConcurso = ?");

Dai em seguida fazia a operação que deseja, dando update nos campos conforma já esta no código.

fwsales

Por ‘model’:

ResultSet rs = stm.executeQuery("UPDATE concursos SET nomeConcurso = ?, Banca = ? WHERE CodConcurso = ?");
//...
stmt.setString(1, con.setString("nomeConcurso"));
stmt.setString(2, con.setString("Banca"));
stmt.setInt(3, con.setString("nomeConcurso"));
stmt.execute();
stmt.close();
guilhermehkr

Espero que tenha entendo, se não entendeu pode dáum grito via MP que a gente fecha direitinho esta ideia!

abraços

fwsales

Pessoal, corrigindo:

ResultSet rs = stm.executeQuery(UPDATE concursos SET nomeConcurso = ?, Banca = ? WHERE CodConcurso = ?);

//…

stmt.setString(1, con.getNomeConcurso());

stmt.setString(2, con.getBanca());

stmt.setInt(3, con.getCodConcurso());

stmt.execute();

stmt.close();
kuroneko

vlw pela atenção galera já consegui aqui agora, na verdade o erro foi meu mesmo.

eu esqueço sempre da ordem do sql com a ordem do campos que você ta passando

na verdade não era que não tava funcionando, era que ele tava tentando fazer update em um código que não existia

ai arrumei igual o do fwsales postou ai.

de todo jeito vlw a atenção e a ajuda.

fwsales

Ou:

String sql = "UPDATE concursos SET nomeConcurso = '"+Texfield1.getText()+"', Banca = '"+textfield2.getText()+"' WHERE CodConcurso = '"+comboBox.getSelectedItem()+"' "); 
conn.stmt.executeUpdate(sql);
//...
kuroneko

ah esse método ai eu não sabia que funcionava, mas axo que fica meio desorganizado assim

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