Pessoal,
quando tendo fazer uma atualização em BD ocorre esse erro:
cannot issue data manipulation statements with executeQuery()
já substiuir pelo executeUpdate, também não rolou…
estou utlizando o Mysql e Netbeans, segue código:
[code]try{
String SQL = "UPDATE fornecedor SET " +
"FNOME_FORNECEDOR = '" +TxtNomAltFor.getText()+"',"+
"FRUA = '" +TxtRuaAltFor.getText()+"'"+
"WHERE FCNPJ = '" +TxtAltFor.getText()+ "'";
Connection conn = new Conexao().getConexao();
java.sql.ResultSet rs = conn.createStatement().executeQuery(SQL);
if(rs != null)
JOptionPane.showMessageDialog(null,"Atualização realiazada com sucesso");
else
JOptionPane.showMessageDialog(null, "Esse cliente ainda não está cadastrado");
}
catch(SQLException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}[/code]
obrigadaa,
[color=“red”]*Editado: tópico movido para o fórum JDBC / SQL, lembre-se de usar BBCode em suas mensagens no fórum. Jair Elton. :joia:[/color]
Olá Regina, acredito que o banco não está considerando o espaço entre o último parametro que você esta passando e a clausula WHERE tenta dar um espaço como abaixo:
String SQL = "UPDATE fornecedor SET " +
"FNOME_FORNECEDOR = '" +TxtNomAltFor.getText()+"',"+
"FRUA = '" +TxtRuaAltFor.getText()+"'"+
" WHERE FCNPJ = '" +TxtAltFor.getText()+ "'";
Faz o teste ae, blz??
Até mais, Filipe.
Opá, só um detalhe, utilize o método executeUpdate(), ok??
java.sql.ResultSet rs = conn.createStatement().executeUpdate(SQL);
É isso…
Att
Sugiro que você use PreparedStatement:
[code]PreparedStatement stmt = conexao.preparedStatement("UPDATE fornecedor SET fnome_fornecedor = ?, frua = ? WHERE fcnpj = ?");
stmt.setString(1, TxtNomAltFor.getText());
stmt.setString(2, TxtRuaAltFor.getText());
stmt.setString(3, TxtAltFor.getText());
stmt.executeUpdate();[/code]
[quote=“jairelton”]Sugiro que você use PreparedStatement:
[code]PreparedStatement stmt = conexao.preparedStatement(“UPDATE fornecedor SET fnome_fornecedor = ?, frua = ? WHERE fcnpj = ?”);
stmt.setString(1, TxtNomAltFor.getText());
stmt.setString(2, TxtRuaAltFor.getText());
stmt.setString(3, TxtAltFor.getText());
stmt.executeUpdate();[/code][/quote]
oi, fiz o teste mais está me retornando a seguinte mensagem
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
se puder ajudar
obrigada,
Regina
pessoal, quero agradecer o retorno de todos quero registrar que conseguir a atualização com o código abaixo:
valew!!! abs,
try{
String SQL = "UPDATE fornecedor SET " +
"FNOME_FORNECEDOR = '" +TxtNomAltFor.getText()+"',"+
"FRUA = '" +TxtRuaAltFor.getText()+"'"+
"WHERE FCNPJ = '" +TxtAltFor.getText()+ "'";
Connection conn = new Conexao().getConexao();
int rs = conn.createStatement().executeUpdate(SQL);
if(rs == 1)
JOptionPane.showMessageDialog(null,
"Atualização realiazada com sucesso !!! ");
else
JOptionPane.showMessageDialog(null, " Nome
de Fornecedor não cadastrado. ");
}
catch(SQLException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
}