public void deletar(){
JOptionPane.showInputDialog("Digite o que deseja excluir.");
try{
String url = "jdbc:mysql://localhost/conta";
String usuario = "";
String senha = "";
Class.forName("com.mysql.jdbc.Driver");
Connection da;
da = DriverManager.getConnection(url,usuario,senha);
st = da.createStatement();
ResultSet rs = st.executeQuery("delete from livro where id = '%"+jCampoId.getText()+"%'");
rs.next();
jCampoId.setText("");
jCampoNome.setText("");
jCampoAutor.setText("");
st.close();
da.close();
}catch(Exception e){
JOptionPane.showMessageDialog(null,"Sem Registro!",
"Menssagem do Programa",JOptionPane.ERROR_MESSAGE);
}
}
Delete em um campo jtable
6 Respostas
bom ate onde eu sei voce nao precisaria usar o ResultSet para fazer essa operação, seque a correção abaixo, nao testei pq to sem o compilador aqui mas a idéia é essa....
public void deletar(){
JOptionPane.showInputDialog("Digite o que deseja excluir.");
try{
String url = "jdbc:mysql://localhost/conta";
String usuario = "";
String senha = "";
Class.forName("com.mysql.jdbc.Driver");
Connection da;
da = DriverManager.getConnection(url,usuario,senha);
String sql = "delete from livro where id = " + CampoId.getText()+";";
Statement stm = da.createStatement(sql);
stm.execute(); // ou stm.executeQuery(); sempre me confundo
jCampoId.setText("");
jCampoNome.setText("");
jCampoAutor.setText("");
st.close();
da.close();
}catch(Exception e){
JOptionPane.showMessageDialog(null,"Sem Registro!",
"Menssagem do Programa",JOptionPane.ERROR_MESSAGE);
}
}
}catch(Exception e){
e.printStackTrace();
JOptionPane.showMessageDialog(null,"Sem Registro!",
"Menssagem do Programa",JOptionPane.ERROR_MESSAGE);
}
Veja qual é o erro e poste para nós, do modo que voce fez voce está engulindo a exceção e mostrando que está sem registro, pode ser outra coisa.
Ola eu modifiquei o codigo no printTracktrace() mas agora da o seguinte erro :
java.sql.SQLException: Can not issue data manipulation statements with executeQuery()
nao sei o que esta acontecendo .Obrigado por responder
voce ta usando o stm.executeQuery()?? muda pra stm.execute() pra ver
wire, tente utilizar o stm.execute();
ah, utilize-o sem o ResultSet. O ResultSet você utiliza apenas quando quer algum tipo de retorno do banco de dados. (Geralmente um select)