Botão Alterar não funciona!

6 respostas
Suellen_Susu

Olá pessoal!

Estou fazendo meu tcc de técnico, e tenho uma tela onde preciso alterar perguntas. No meu código, ele mostra q a questão foi alterada, mas no banco de dados, realmente, ela ñ foi. Segue abaixo o código do botao:

new playerIII(); String sql = ""; int cod = Integer.parseInt(jTextField7.getText()); alt1 = jTextField2.getText(); alt2 = jTextField3.getText(); alt3 = jTextField4.getText(); alt4 = jTextField5.getText(); if (alt1.equals(jTextField6.getText())||alt2.equals(jTextField6.getText())||alt3.equals(jTextField6.getText())||alt4.equals(jTextField6.getText()) ) { if(BD.getConnection()) { try { sql = "UPDATE facil SET " + "id='" + jTextField7.getText() + "'," + "pergunta='" + jTextField1.getText() + "'," + "alt1='" + jTextField2.getText() + "'," + "alt2='" + jTextField3.getText() + "'," + "alt3='" + jTextField4.getText() + "'," + "alt4='" + jTextField5.getText() + "'," + "resposta='" + jTextField6.getText() + "',"; } catch (java.lang.Exception ex) { ex.printStackTrace(); } } new certosom(); int r = BD.runSQL(sql); JOptionPane.showMessageDialog(null, "Sua pergunta foi alterada no nível Fácil!","Questão alterada:",JOptionPane.INFORMATION_MESSAGE ); } else { new errosom(); JOptionPane.showMessageDialog(null, "Sua pergunta não foi atualizada no nível Fácil! Verifique se você digitou uma alternativa igual a resposta correta!","Pergunta não atualizada:",JOptionPane.ERROR_MESSAGE ); }

6 Respostas

dooda

mas que erro dá?
não dá nenhum erro?!

pra saber precisaria postar tambem o codigo do seu BD…

poste mais informações…

vc disse: “no meu código ele mostra que a questão foi alterada…”

mas a execuação do seu SQL da fora do try catch, e a mensagem tambem…

revise esta parte: deixe a linha “int r = BD.runSQL(sql);” dentro do try tambem e verifique se o r > 0 provavelmente…

Att.

IagoRock

Estou vendo alguns errinhos de lógica…

Coloque a mensagem de que se foi alterado ou não dentro do try() e catch(). E também nomeie as JTextFields para você saber qual está utilizando!

Se não funcionar. Poste mais informações…

IagoRock

Bom…

O motivo do erro deve ser porque na String sql que está dentro do try() {} não tem o comando em SQL WHERE.

Assim na hora da execução ele não en encontra no banco de dados qual registro alterar.

Mais uma dica: nomeie todas suas JTextFields de acordo sua função no banco de dados, como por exemplo: Se uma JtextField tem o objetivo de receber o nome de um cliente (por exemplo) de o nome dela de: “txt_nome_cliente”, ou use o prefixo txt seguido de um underline (_) e depois coloque o nome do campo que estiver no seu banco de dados, como por exemplo se no seu banco o nome do campo for “nomecli” de o nome da JTextField de “txt_nomecli”.

Se o código não funcionar, poste de novo.

Boa sorte!

arqueiros

O que eu acho que pode estar acontecendo é seguinte:

se o if abaixo der falso não vai fazer o update na tabela mas exibirá a mensagem!

if(BD.getConnection())
Suellen_Susu

Obrigada a todos q responderam, mas o problema ja foi solucionado!

peczenyj

Quando eu vejo duvidas como esta, e códigos como este, eu concordo com o Vinicius Telles sobre trocar disciplinas nas faculdades por Dojos. Meu medo é que o aluno faça um programa que funcione, mas sem aprender tudo o que poderia. O ponto não é dizer que quem abriu o topico não sabe, mas que precisa de uma ajuda além do de responder uma ou mais duvidas, precisa de uma orientação que existem coisas como Dojos de programação (que qq um pode implantar na sua faculdade, empresa ou grupos de amigos) que potencializam o aprendizado :smiley:

Criado 4 de junho de 2010
Ultima resposta 4 de jun. de 2010
Respostas 6
Participantes 5