Ir ao conteúdo

Problema com inserir valores a 1 BD por programa


Fanatico

Posts recomendados

Postado

eaew pessoal, eu to fazendo 1 programa em java, e deu erro de sintaxe nessa linha(para conexão com BD feito em acess)

st.executeUpdate("INSERT INTO Cliente(nome, sobrenome, cpf, telefone, celular, email) VALUES (' "+ tnome.getText() + " ',' " + tsnome.getText() +" ',' " + tcpf.getText() +" ',' " + ttelefone.getText() +" ',' " + tcel.getText() +" ',' " + temail.getText() +" '");

(eu ja conectei anteriormente ao BD, eo nome da tabela q quero me conectar é Cliente (como eu digitei acima) e os campos estão na ordem q eu coloquei no acess e no programa)

O erro especifico q da é esse:

Erro: [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na instrção INSERT INTO.

Postado

Boa tarde!

Tenta esta forma:


st.executeUpdate("INSERT INTO Cliente VALUES (' "+ tnome.getText() + " ',' " + tsnome.getText() +" ',' " + tcpf.getText() +" ',' " + ttelefone.getText() +" ',' " + tcel.getText() +" ',' " + temail.getText() +" ')");

valeu?

Postado

valeu pela ajuda pessoal, arrumou oproblema aqui, vou aproveitar esse topico pra mandar outro erro:

possivelmente usei a linha errada então da dando erro.

[B][COLOR=#7f0055]

[LEFT]try[/LEFT]


[/COLOR][/B]

[LEFT] {
String url = [COLOR=#2a00ff]"jdbc:odbc:HotelJava"[/COLOR];
String usuario = [COLOR=#2a00ff]""[/COLOR];
String senha = [COLOR=#2a00ff]""[/COLOR];
Class.[I]forName[/I]([COLOR=#2a00ff]"sun.jdbc.odbc.JdbcOdbcDriver"[/COLOR]);

Connection con;
con = DriverManager.[I]getConnection[/I](url,usuario,senha);

Statement st = con.createStatement();
[COLOR=#3f7f5f]//[U]erro[/U] [U]nessa[/U] [U]linha[/U]//[/COLOR][/LEFT]


[COLOR=#3f7f5f]
[/COLOR]

[LEFT]st.executeUpdate([/LEFT]


[LEFT][COLOR=#2a00ff]"ALTER INTO Cliente VALUES (' "[/COLOR]+ [COLOR=#0000c0]tnome[/COLOR].getText() + [COLOR=#2a00ff]" ',' "[/COLOR] + [COLOR=#0000c0]tsnome[/COLOR].getText() +[COLOR=#2a00ff]" ',' "[/COLOR] + [COLOR=#0000c0]tcpf[/COLOR].getText() +[COLOR=#2a00ff]" ',' "[/COLOR] + [COLOR=#0000c0]ttelefone[/COLOR].getText() +[COLOR=#2a00ff]" ',' "[/COLOR] + [COLOR=#0000c0]tcel[/COLOR].getText() +[COLOR=#2a00ff]" ',' "[/COLOR] + [COLOR=#0000c0]temail[/COLOR].getText() +[COLOR=#2a00ff]" ') where cpf = ?"[/COLOR]);
[COLOR=#3f7f5f]//[U]nessa[/U]//[/COLOR][/LEFT]


[COLOR=#3f7f5f]
[/COLOR]

[LEFT]
[/LEFT]


[LEFT][COLOR=#0000c0]status[/COLOR].setText([COLOR=#2a00ff]"Dados alterados com Sucesso"[/COLOR]);

st.close();

}
[B][COLOR=#7f0055]catch[/COLOR][/B] (Exception r) {
JOptionPane.[I]showMessageDialog[/I]([B][COLOR=#7f0055]null[/COLOR][/B],[COLOR=#2a00ff]"Erro: "[/COLOR]+r.getMessage());

}[/LEFT]


o erro deve ser na linha (st.executeUpdate ("ALTER...));

obrigado pela ajuda de vocês.

Postado

pelo que eu entendi você quer atualizar dados na tabela Cliente,

o comando SQL que você deve usar para fazer isso é o UPDATE.

exemplo:


UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

o comando ALTER serve para alterar a estrutura da tabela, e não os dados que estão nela

Postado

essa é a linha de codigo pra alterar (q eu to usando):

st.executeUpdate("UPDATE Cliente SET nome=tnome.getText(), sobrenome=tsnome.getText(), cpf=tcpf.getText(), telefone=ttelefone.getText(), celular=tcel.getText(), email=temail.getText()");

(os campos, nome, sobrenome,cpf (antes do = ) sao os campos do meu BD, ja os tnome ,tsnome etc, sao os campos do meu programa)

o erro q da é esse: Função 'tnome.getText' indefinida na expressão.

(ai eu tentei desse jeito)

st.executeUpdate("UPDATE Cliente SET nome=tnome, sobrenome=tsnome, cpf=tcpf, telefone=ttelefone, celular=tcel, email=temail");

o erro q deu foi

Parametros Insuficientes. Eram esperados 6.

qual dos 2 geitos esta mais proximo de estar certo, e como eu arrumo ?

o que eu quero, como ja dito é alterar os valores de 1 cadastro ja existente, (nao sei se o where é necessario, porque eu anteriormente coloquei 1 busca e o valor de buscar vai estar fixo)

Postado

Bom dia!

Se o que você quer é capturar informações do JTextField o primeiro é o ideal.Mas eu acho que voce não está dizendo o que quer atualizar, deve estar faltando um "where cpf=tcpf.setText(),

para que o BD saiba qual linha voce quer atualizar.

E voce deve lembrar que é uma variavel então fica assim:


st.executeUpdate("UPDATE Cliente SET nome="+tnome.getText()+", sobrenome="+tsnome.getText()+", cpf="+tcpf.getText()+", telefone="+ttelefone.getText()+", celular="+tcel.getText()+", email="+temail.getText()+" where cpf="+tcpf.setText());

Tente isto

  • Membro VIP
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!