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("");
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);
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 ;\
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.
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();
Espero que tenha entendo, se não entendeu pode dáum grito via MP que a gente fecha direitinho esta ideia!
abraços
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();
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.
Ou:
String sql = "UPDATE concursos SET nomeConcurso = '"+Texfield1.getText()+"', Banca = '"+textfield2.getText()+"' WHERE CodConcurso = '"+comboBox.getSelectedItem()+"' ");
conn.stmt.executeUpdate(sql);
//...
ah esse método ai eu não sabia que funcionava, mas axo que fica meio desorganizado assim