Alterar registro no banco de dados[Resolvido]

8 respostas
T

E ae pessual tudo beleza.

estou com um problema em alterar registros no meu banco, fiz o seguinte.

private void buton_alterarActionPerformed(java.awt.event.ActionEvent evt) {                                              
    try
    {
        String sql = "UPDATE CadAcervo SET  Tipo='"+combo_Tipo.getSelectedItem()+"', "+
                "ISBN='"+text_ISBN.getText()+"',"+ 
                "ISSN='"+text_ISSN.getText()+"',"+  
                "cod_Multimidia='"+text_codMultimidia.getText()+"','"+ 
                "num_Ativo='"+text_numAtivo.getText()+"','"+  
                "Titulo='"+text_Titulo.getText()+"','"+ 
                "Autor='"+text_Autor.getText()+"','"+ 
                "Edicao='"+text_edicao.getText()+"','"+    
                "Assunto='"+Jcombo_Assunto.getSelectedItem()+"','"+   
                "Publicacao='"+text_publicacao.getText()+"','"+    
                "Editora='"+text_editora.getText()+"','"+ 
                "Quantidade='"+text_quantidade.getText()+"','"+     
                "Acervo_Restrito" +rbuton_sim.getText()+"'where Tombo="+text_Tombo.getText();           
        cad_acervo.statement.executeUpdate(sql);
        JOptionPane.showMessageDialog(null,"Alteração realizada com sucesso!");
        
        
        cad_acervo.executeSQL("Select * from CadAcervo");
        cad_acervo.resultset.next();
        mostrar_dados();
        }
            catch(SQLException erro)
            {
                
                JOptionPane.showMessageDialog(null,"Erro ao tentar alterar o registro...  "+erro);
    }
    }

Porem ele esta dando erro de sintaxe no Update, mas esta de acordo com o livro, poderiam me dar uma força mais uma vez

8 Respostas

nel

Boa tarde.

Qual seria o erro que está ocorrendo? Poste o stacktrace ok? Ah…está correto o nome da tabela, CadAcervo?
Abraços.

renamed

Em várias linhas, você está colocnado aspas simples, quando não é necessário…

"cod_Multimidia='"+text_codMultimidia.getText()+"','"+ //obverse q vc fez "', ' " … essa última aspas simples é descartável…

faça o seguinte… depois de montar sua string de statement, imprimi-a na tela e cole aqui para vermos…

private void buton_alterarActionPerformed(java.awt.event.ActionEvent evt) {                                                
   try  
   {  
       String sql = "UPDATE CadAcervo SET  Tipo='"+combo_Tipo.getSelectedItem()+"', "+  
               "ISBN='"+text_ISBN.getText()+"',"+   
               "ISSN='"+text_ISSN.getText()+"',"+    
               "cod_Multimidia='"+text_codMultimidia.getText()+"','"+   
               "num_Ativo='"+text_numAtivo.getText()+"','"+    
               "Titulo='"+text_Titulo.getText()+"','"+   
               "Autor='"+text_Autor.getText()+"','"+   
               "Edicao='"+text_edicao.getText()+"','"+      
               "Assunto='"+Jcombo_Assunto.getSelectedItem()+"','"+     
               "Publicacao='"+text_publicacao.getText()+"','"+      
               "Editora='"+text_editora.getText()+"','"+   
               "Quantidade='"+text_quantidade.getText()+"','"+       
                "Acervo_Restrito" +rbuton_sim.getText()+"'where Tombo="+text_Tombo.getText();             
        System.out.println(sql); //coloque essa linha e cole o resultado aqui para vermos
       cad_acervo.statement.executeUpdate(sql);  
       JOptionPane.showMessageDialog(null,"Alteração realizada com sucesso!");  
         
         
       cad_acervo.executeSQL("Select * from CadAcervo");  
       cad_acervo.resultset.next();  
       mostrar_dados();  
       }  
           catch(SQLException erro)  
           {  
                 
               JOptionPane.showMessageDialog(null,"Erro ao tentar alterar o registro...  "+erro);  
   }  
   }

ok?

wbdsjunior
"Acervo_Restrito" +rbuton_sim.getText()+"'where Tombo="+text_Tombo.getText();

nesta linha está faltando “=” (igual) depois do campo Acervo_Restrito e um espaço em branco depois do “’” (fecha aspas)

tente assim:

"Acervo_Restrito = " +rbuton_sim.getText()+"' where Tombo="+text_Tombo.getText();
nel

Seguindo a ideia dos nossos amigos, eu recomendaria que você debugasse o seu código para ver exatamente o conteúdo da sua string sql, dessa forma, poderá ver onde está errando.

E mais um detalhe, em query um pouco maiores como esta, porque não utiliza o StringBuffer ou StringBuilder, acredito que facilitaria a organização.

Abraços.

T

nel:
Boa tarde.

Qual seria o erro que está ocorrendo? Poste o stacktrace ok? Ah…está correto o nome da tabela, CadAcervo?
Abraços.

Sim esta correto o nome da tabela é CadAcervo.

O erro é:

Erro ao tentar alterar o registro…java.SQL.Exception: [Microsoft][Driver ODBC Microsoft Access]Erro de sintaxe na instrução UPDATE

T

coloquei o system e ele imprimiu isso:

UPDATE CadAcervo SET Tipo=‘Livros’, ISBN=’’,ISSN=’’,cod_Multimidia=’’,‘num_Ativo=’’,'Titulo=‘Engenharia de Software’,'Autor=‘Roger Pressman’,'Edicao=‘6’,‘Assunto=‘Engenharia de Software’,‘Publicacao=‘2006’,‘Editora=’’,‘Quantidade=’’,'Acervo_Restrito= Não’where Tombo=6

renamed

UPDATE CadAcervo SET Tipo=‘Livros’, ISBN=’’,ISSN=’’,cod_Multimidia=’’,‘num_Ativo=’’,'Titulo=‘Engenharia de Software’,'Autor=‘Roger Pressman’,'Edicao=‘6’,‘Assunto=‘Engenharia de Software’,‘Publicacao=‘2006’,‘Editora=’’,‘Quantidade=’’,'Acervo_Restrito= Não’where Tombo=6

Perceba que antes de num_ativo, Titulo, Autor, Edicao, Assunto, Publicação, Editora, Acervo_Restrito você está imprimindo uma aspas simples, modifique o código para que isso não ocorra mais.

Acervo_Restrito = Não’ … você não abriu aspas antes do Não.

Coloque um espaço entre as palavras Não’ e Where

Modifique o que eu disse e, se ainda der erro, poste novamente a statement.

T

Perfeito Cara, valew pela dica.

Brigadão Mesmo

Criado 9 de novembro de 2009
Ultima resposta 9 de nov. de 2009
Respostas 8
Participantes 4