lokits5
Setembro 17, 2010, 2:43pm
#1
pessoal não estou conseguindo excluir os dados do banco …
vou postar o que acontece
//cadastro delete
[code]public boolean delete(String cod){
try {
con = DAOConexao.getConn();
//String sql = " DELETE FROM tb_Cadastro where codigo = %s ";
String sql = "DELETE FROM tb_Cadastro where codigo = " + cod;
pstm = con.prepareStatement(sql);
pstm.executeUpdate();
}catch(Exception e){
System.out.println(e.toString());
}finally{
try{
pstm.close();
//con.close();
}
catch(Exception e){
}
}
return true;
}
[/code]
//botão delete no frame
[code]private void btnDelActionPerformed(java.awt.event.ActionEvent evt) {
Mensagem mensagem = new Mensagem(this, "Confirmação", "Deseja excluir cadastro ", Mensagem.MSG_BOTAO_SIM_NAO_CANCELA, Mensagem.MSG_ICONE_PERGUNTA);
if (mensagem.getBotaoClicado() == Mensagem.MSG_CLICK_SIM )
{
String cod = txtDel.getText(); // o problema é que não tenhu mais esse txtDel…pq não preciso digitar um numero a ser excluido apenas o botão.
if(cod != null && !cod.equals("")){
cad.delete(cod);
}
System.out.println(" Item Deletado!!! ");
new Mensagem(this, "Aviso", "Item deletado", Mensagem.MSG_BOTAO_OK, Mensagem.MSG_ICONE_ERRO);
//limpaDados();
}
}[/code]
// classe controlle
[code]public boolean delete(String cod) {
return dao.delete(cod);
}[/code]
Mais antes vc precisava digitar o numero para excluir ?
verifique primeiro se o parametro esta chegando.
mande imprimir na tela de console:
[code]System.out.println(cod);
//se estiver, faça o codigo da seguinte maneira
PreparedStatement prepare = null;
String sql = “delete from tb_Cadastro where codigo=?;”;
try{
prepare= con.prepareStatement(sql);
prepare.setString(1,cod);
prepare.execute();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(prepare!=null){
try {
prepare.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}[/code]
lokits5
Setembro 20, 2010, 8:32am
#5
então antes eu tinha um campo pra digitar o codigo para exclusão , mas naum achu necessario !
Pq eu não vo saber qual codigo eu kero excluir que foi cadastrado…então o que pretendo fazer é qq consultar depois excluo o produto!!!
mas não esta dando certo!!
no console não da erro !
Cara a meu ver por questoes de boas praticas eu sempre gosto de saber o codigo do registro que estou excluindo.
Nao sei quais são seus motivos para nao querer saber. Mais e uma coisa que eu lhe aconselho sempre exibir.
No seu caso vc pode programar um evento no botão a qual chame um evento na camada de dados. Da seguinte maneira:
Evento do Botão:
[code]
private void ExcluirActionPerformed(java.awt.event.ActionEvent evt) {
CadastroControle cadastro = new CadastroControle();
Cadastro a = new Cadastro();
a.setMatricula(Integer.parseInt(Matricula.getText()));
try {
cadastro.deletar(a);
JOptionPane.showMessageDialog(null,"Dado Deletado Com Sucesso!","", JOptionPane.INFORMATION_MESSAGE);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Erro no SQL " + ex.getMessage(),"", JOptionPane.ERROR_MESSAGE);
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null,"Driver não Encontrado " + ex.getMessage(),"", JOptionPane.ERROR_MESSAGE);
}
}[/code]
Ae vc programa a exclução em uma outra classe:
public void deletar(int matricula) throws SQLException, ClassNotFoundException
{
ConectarBanco cb = new ConectarBanco();
Statement stm = cb.conectar();
String comando="DELETE FROM celular WHERE matricula = " + matricula + ";";
stm.executeUpdate(comando);
}
Trabalhando dessa maneira acredito eu que ira funcionar. Alem de vc ter seu codigo um pouco melhor desenvolvido.
Bons codigos
isso me ajudo brother estava com o msm problema!