O estranho é que com este mesmo bloco de comandos eu consegui inserir dados na primeira vez, mas quando fui inserir novamente, apresentou este erro e não parou mais.
private void emitindoNota() throws Exception{
String codFornecedor=campoFornecedor.getSelectedItem().toString().replaceAll("\\D","");
String[] dt=campoDataNota.getText().split("/");
String dataNota=dt[2]+"-"+dt[1]+"-"+dt[0];
String[] dt1=campoDataEntrada.getText().split("/");
String dataEntrada=dt1[2]+"-"+dt[1]+"-"+dt[0];
PreparedStatement stmt=Conexao.connect().prepareStatement("INSERT INTO nfentrada (id,idfornecedor,serie,datarecpecao,dataemissao) VALUES (?,?,?,?,?);");
stmt.setString(1,campoNumNota.getText());
stmt.setString(2,codFornecedor);
stmt.setString(3,campoSerie.getText());
stmt.setString(4, dataNota);
stmt.setString(5,dataEntrada);
stmt.execute();
Conexao.commit();
for (int i = 0; i < tableNotaEntrada.getRowCount(); i++) {
stmt=Conexao.connect().prepareStatement("INSERT INTO entradaproduto (idnfentrada,idproduto,valorvenda,quantidade,valortotal) VALUES (?,?,?,?,?);");
stmt.setString(1,campoNumNota.getText());
stmt.setString(2,tableNotaEntrada.getValueAt(i, 0).toString().replaceAll("\\D",""));
stmt.setString(3,tableNotaEntrada.getValueAt(i, 2).toString());
stmt.setString(4,tableNotaEntrada.getValueAt(i, 1).toString());
stmt.setString(5,tableNotaEntrada.getValueAt(i, 3).toString());
stmt.execute();
Conexao.commit();
}
stmt=Conexao.connect().prepareStatement("UPDATE produtos SET estoque=? WHERE id=?;");
for (int i = 0; i < tableNotaEntrada.getRowCount(); i++) {
stmt.setString(1,tableNotaEntrada.getValueAt(i,1).toString());
stmt.setString(2,tableNotaEntrada.getValueAt(i,0).toString().replaceAll("\\D",""));
stmt.execute();
}
Conexao.commit();
JOptionPane.showMessageDialog(null,"Nota Fiscal cadastrada com sucesso!!!","OK",JOptionPane.INFORMATION_MESSAGE);
}
A
ADEMILTON
A mensagem diz que está faltando passar um valor para o campo idproduto que corresponda a um registro que exista na tabela produtos. Examine essa linha:
D
Dani_Gomes
Já fiz de tudo, mas continua dando este erro.
Eu acredito que o erro está no SQL, mas não sei exatamente o que pode ser.
Se alguém puder dar uma dica, estou procurando na internet o que pode ser, mas não estou achando nada parecido.
O estranho é que a primeira vez que rodei o programa, ele inseriu direitinho.
P
pmlm
O erro está no produto que estás a inserir em entradaproduto, que não existe na tabela produtos.
D
Dani_Gomes
pmlm e ADEMILTON.
Após vocês dois dizerem a mesma coisa, resolvi deixar de preguiça e debuguei o projeto, também usei alguns observadores para não fazer mais serviço de relaxado.
Então percebi que vocês estavam certos, o problema era naquela linha mesmo, ADEMILTON.
O caso é que esta linha faz o seguinte, pega a String que está no jtable e tira todas as letras, ficando somente os números, porém como tinha números ali que eu não contava que estavam lá acabavam alterando o número do cadastro que estava querendo inserir.
Agora alterei e funcionou direitinho.
Abraços e até mais.