[RESOLVIDO] Problema com UPDATE no BD Access!

[color=red][b]Estou com problema na hora de salvar no banco de dados os dados que foram editados. Primeiro o programa acusava o erro de não salvar os dados, contudo agora o programa retorna a mensagem de que os dados foram editados com sucesso, porém quando verifico na tabela do Access, o campo referente a edição não está alterado. O código está abaixo:

OBS: O PRIMEIRO CAMPO DA MINHA TABELA É O cod, que é minha chave primária, contudo na hora do primeiro cadastro eu que passo o código para ser registrado na tabela, e ao fazer UPDATE no BD não quero alterar o campo cod.

Peço que analisem o código e apontem onde está meu erro. Sou iniciante nessa área e tenho um pouco de dificuldade.[/b][/color]

Segue uma parte do código que faz a ação do botão para editar:

[code]if (e.getSource()== Bedit){

if(Tx1.getText().trim().isEmpty()){
Tx1.setBackground(Color.yellow);
JOptionPane.showMessageDialog(null,"PREENCHA O CAMPO CÓDIGO DO CLIENTE", "ATENÇÃO!", JOptionPane.INFORMATION_MESSAGE);
	Tx1.setBackground(Color.white);
	return;
	}

.
.
.
}
else{
String est = (String)uf.getSelectedItem();
a2.setNome(Tx2.getText());
a2.setRg(Tx3.getText());
a2.setCpf(Tx4.getText());
a2.setData(Tx5.getText());
a2.setTel(Tx6.getText());
a2.setCel(Tx7.getText());
a2.setEmail(Tx8.getText());
a2.setEnd(Tx9.getText());
a2.setNum(Tx10.getText());
a2.setBairro(Tx13.getText());
a2.setComple(Tx11.getText());
a2.setCidade(Tx12.getText());
a2.setEstado(est);
com.editar(a2);
limparCaixas(getContentPane());
}
}[/code]
Segue a parte do código que executa o método editar:

[code]public void editar(acessopf a2){

try {
String SQL = “UPDATE tabfisica SET (nome,rg,cpf,data,tel,cel,email,end,num,bairro,comple,cidade,estado)values(?,?,?,?,?,?,?,?,?,?,?,?,?) WHERE cod =”+a2.getCod();

PreparedStatement pstm = conloc.conexao.prepareStatement(SQL);
//pstm.setString(1, a2.getCod());
pstm.setString(1, a2.getNome());
pstm.setString(2, a2.getRg());
pstm.setString(3, a2.getCpf());
pstm.setString(4, a2.getData());
pstm.setString(5, a2.getTel());
pstm.setString(6, a2.getCel());
pstm.setString(7, a2.getEmail());
pstm.setString(8, a2.getEnd());
pstm.setString(9, a2.getNum());
pstm.setString(10, a2.getBairro());
pstm.setString(11, a2.getComple());
pstm.setString(12, a2.getCidade());
pstm.setString(13, a2.getEstado());
pstm.close();

JOptionPane.showMessageDialog(null,"DADOS EDITADOS COM SUCESSO!");

} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,“ERRO AO SALVAR OS DADOS!\n”+ex);
pesquisar pes = new pesquisar();
pes.limparCaixas(pes);
}
}[/code]

Desde já agradeço.

Antes da linha 21:pstm.close(); altere para ficar assim:

pstm.executeUpdate();
conloc.conexao.commit();
pstm.close();

Depois, leia este artigo que vai te ajudar muito.
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

Obrigado pelas explicações.

Consegui resolver meu problema depois de muita procura na net por problemas parecidos com o meu.

Antes estava assim:

[code]public void editar(acessopf a2){

try {
String SQL = “UPDATE tabfisica SET (nome,rg,cpf,data,tel,cel,email,end,num,bairro,comple,cidade,estado)values(?,?,?,?,?,?,?,?,?,?,?,?,?) WHERE cod =”+a2.getCod();

PreparedStatement pstm = conloc.conexao.prepareStatement(SQL);
//pstm.setString(1, a2.getCod());
pstm.setString(1, a2.getNome());
pstm.setString(2, a2.getRg());
pstm.setString(3, a2.getCpf());
pstm.setString(4, a2.getData());
pstm.setString(5, a2.getTel());
pstm.setString(6, a2.getCel());
pstm.setString(7, a2.getEmail());
pstm.setString(8, a2.getEnd());
pstm.setString(9, a2.getNum());
pstm.setString(10, a2.getBairro());
pstm.setString(11, a2.getComple());
pstm.setString(12, a2.getCidade());
pstm.setString(13, a2.getEstado());
pstm.close();

JOptionPane.showMessageDialog(null,"DADOS EDITADOS COM SUCESSO!");  

} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,“ERRO AO SALVAR OS DADOS!\n”+ex);
pesquisar pes = new pesquisar();
pes.limparCaixas(pes);
}
}[/code]

Fiz algumas alterações e ficou dessa forma:

[code]public void editar(acessopf a2){

	String SQL = "UPDATE tabfisica SET nome =?,rg =?,cpf =?,data =?,tel =?,cel =?,email =?,end =?,num =?,bairro =?,comple =?,cidade =?,estado =? WHERE cod =?";
	
	try {  

	PreparedStatement pstm = conloc.conexao.prepareStatement(SQL);
	pstm.setString(1, a2.getNome());  
	pstm.setString(2, a2.getRg());  
	pstm.setString(3, a2.getCpf());  
	pstm.setString(4, a2.getData());  
	pstm.setString(5, a2.getTel());  
	pstm.setString(6, a2.getCel());  
	pstm.setString(7, a2.getEmail());  
	pstm.setString(8, a2.getEnd());  
	pstm.setString(9, a2.getNum());  
	pstm.setString(10, a2.getBairro());  
	pstm.setString(11, a2.getComple());  
	pstm.setString(12, a2.getCidade());  
	pstm.setString(13, a2.getEstado());
	pstm.setString(14, a2.getCod());
	pstm.executeUpdate(); 
	pstm.close();
	JOptionPane.showMessageDialog(null,"DADOS EDITADOS COM SUCESSO!");

} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,“ERRO AO SALVAR OS DADOS!\n”+ex);
pesquisar pes = new pesquisar();
pes.limparCaixas(pes);
}
}[/code]

Utilizei o PreparedStatement que evito ficar concatenando muitas strings, e uma aspa errada dá um problema danado.

Agora está funcionando perfeitamente a atualização de dados no BD.

Vou partir agora para o excluir dados no BD :wink:

Muito obrigado mesmo pela ajuda!!!