Saudações Comunidade…
Estou a dias, noites, madrugadas, enfim a procura de uma solução para o seguinte…
Tenho uma tela com alguns JTextFiel’s, ao clicar em incluir os dados vão para a tabela. Ao clicar em “gravar” no Banco só a primeira linha do registro é salvo, aparece a mensagem “Gravação realizada com sucesso” e logo aparece outra mensagem “Erro ao tentar gravar registro” com.mysql.jdbc.exception.MySQLIntegrityConstraintViolationException: Duplicate entry ‘(numero do código)’ for key 1. Ressalto que, o registro foi gravado no banco, mas uma só linha da tabela.
for(int x=0;x<=jTable.getRowCount();){
//Dados a serem salvos no banco
String sqlinsert = "INSERT INTO entvenda (numero, data, table0_descricao, table1_precounitario, table2_quantidade, table3_subtotal, desconto, comissao, formapagamento, valortotal) VALUES " +
"('" +
jt_NumVenda.getText() + "','" +
jt_Dt.getText() + "','" +
jTable.getValueAt(x,0)+"','" +
jTable.getValueAt(x,1)+"','" +
jTable.getValueAt(x,2)+"','" +
jTable.getValueAt(x,3)+"','" +
jt_Comissao.getText() + "','" +
jt_Desconto.getText() + "','" +
jc_FormaPgt.getSelectedItem() + "','" +
jt_ValorTotal.getText() + "')";
con_NovaVenda.statement.executeUpdate(sqlinsert);
JOptionPane.showMessageDialog(null, "Gravação realizada com sucesso!!!");
con_NovaVenda.resultset = con_NovaVenda.statement.executeQuery ("SELECT * FROM entvenda");
con_NovaVenda.resultset.last();
mostrar_dados();
}//fim for
}catch (SQLException erro){
JOptionPane.showMessageDialog(null, "Erro ao tentar gravar o registro\n" + erro);
}
}
});
}
return jb_FecharVenda;
}
Outra função é a de mostrar dados. Tenho um método para isso. e para mostrar dados do jTextField eu faço o seguinte:
jt_NumVenda.setText(con_NovaVenda.resultset.getString ("numero"));
jt_Dt.setText(con_NovaVenda.resultset.getString ("data"));
Como devo fazer para chamar os dados do JTable para o registro visualizado.
Desde já agradeço.