Delete em um campo jtable

6 respostas
W
Ola sou inciante em java e to fazendo um aplicativo no netbeans e to com duvida no botao delete por exemplo quero aperta no delete e excluir um id especifico meu codigo esta assim
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);
        } 
    }
quando eu aperto no bota delete ele cai direto no catch dizendo que ta sem regitro, não sei o por que alguem poderia me ajudar.Obrigado

6 Respostas

M

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);
        } 
    }
Marky.Vasconcelos
}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.

W

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

M

voce ta usando o stm.executeQuery()?? muda pra stm.execute() pra ver

cbr0wn

wire, tente utilizar o stm.execute();

cbr0wn

ah, utilize-o sem o ResultSet. O ResultSet você utiliza apenas quando quer algum tipo de retorno do banco de dados. (Geralmente um select)

Criado 9 de dezembro de 2010
Ultima resposta 9 de dez. de 2010
Respostas 6
Participantes 4