Gravar dados no BD [Resolvido]

Boa Noite,

Quero gravar o resultado do for no banco de dados,mas não sei como devo fazer ,help… :oops:

private void bt_geraparcelaActionPerformed(java.awt.event.ActionEvent evt) {                                               
               double valorparc=0,valocompra;
      
               int numepar=0;
               numepar=Integer.parseInt(tf_numparcelas.getText());
             
                 
              // if  (numepar > 0)
              // {
                  valorparc=((Double.parseDouble(tf_valorliquido.getText()) / (Double.parseDouble(tf_numparcelas.getText()))));
                  tf_valorpar.setText(String.valueOf(valorparc));
                  int cont=1;
                  
                  Calendar data = Calendar.getInstance();   
                   
                  SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");
                  String h=format.format(data.getTime());
                  String resp="";
                  for (cont = 2; cont <= numepar; cont++) {   
                  
                  data.add(Calendar.MONTH, 1);
              
                  //JOptionPane.showMessageDialog(null,cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime()))) ;
                  System.out.println(cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime())));//aq está a saida que quero gravar,por favor um jeito simples
                  
                }

Que tipo de banco de dados :?

Access!Por favor não me fale pra mudar o banco,estou no fim do projeto…

Olha, banco Access nem tenho resposta.

Mas deixo uma sugestão.

Mude de Banco.

[quote=rafael.borges]Olha, banco Access nem tenho resposta.

Mas deixo uma sugestão.

Mude de Banco. [/quote]

Valeu! :cry:

Esqueci,o banco é access mas os comando são SQL,conexão JDBC.

??? ninguém??? :frowning:

Primeiramente, o que voce quer gravar no banco?

Já existe uma Tabela criada para o dado que vc qr gravar?
Ex: João gravar na tabela "“Pessoas” ou “Funcionarios”

Se esta tudo ok

Vc tem que montar a query que é a parte mais simples

INSERT INTO nome_da_tabela (COLUNA1, COLUNA2, …, COLUNA N) VALUES (VALOR1, VALOR2, …, VALOR N);

NOTA: Procure por PreparedStatement e os valores que são String’s devem estar entre aspas simples!

Tentei fazer assim:


private void bt_geraparcelaActionPerformed(java.awt.event.ActionEvent evt) {                                               
               double valorparc=0,valocompra;
      
               int numepar=0;
               numepar=Integer.parseInt(tf_numparcelas.getText());
             
                 
              // if  (numepar > 0)
              // {
                  valorparc=((Double.parseDouble(tf_valorliquido.getText()) / (Double.parseDouble(tf_numparcelas.getText()))));
                  tf_valorpar.setText(String.valueOf(valorparc));
                  int cont=1;
                  
                  Calendar data = Calendar.getInstance();   
                   
                  SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");
                  String h=format.format(data.getTime());
                  String resp="";
                  for (cont = 1; cont <= numepar; cont++) {   
                  
                   
                  data.add(Calendar.MONTH, 1);
                  //resp=(cont )+ (numepar) + (valorparc) + (format.format(data.getTime()));
                  //JOptionPane.showMessageDialog(null,cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime()))) ;
                  System.out.println(cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime())));
                 // 
                  try
                  {
                      String sqlinsert=" insert into TB_recebe (cont,numepar,valorparc,data)  values  (quant,numepar,valorparc,data)";//os campos a tabela são esses mesmo
                  
                    
                  
                      conecta_venda.statement.executeUpdate(sqlinsert);
                      JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso");
            
                     // atualizar resulset;
                     conecta_venda.resultset=conecta_venda.statement.executeQuery("select * from TB_recebe order by "+oi);
            
                     conecta_venda.resultset.first();//va
                   
                  }
                   catch(SQLException erro)
                  {
                    JOptionPane.showMessageDialog(null,"Erro,dados não foram gravados"+erro);
                  }
                  
                 
                 
                }

}	

Mas está dando erro. :oops:

Dá uma vista de olhos em PreparedStatement.

[quote=pmlm][quote=Anime]


                      String sqlinsert=" insert into TB_recebe (cont,numepar,valorparc,data)  values  (quant,numepar,valorparc,data)";//os campos a tabela são esses mesmo
                  
                      conecta_venda.statement.executeUpdate(sqlinsert);

[/quote]

Dá uma vista de olhos em PreparedStatement.[/quote]

Bom dia!

me ajuda ai vai quero um exemplo “facil”…

Oi Anime,

Gostaria muito de ajuda-la. Porém, preciso saber qual é o erro!

Utilize:

catch(SQLException erro) { erro.printStackTrace(); JOptionPane.showMessageDialog(null,"Erro,dados não foram gravados"+erro); }

E cole a exceção gerada.

Tchauzin!

[quote=lina]Oi Anime,

Gostaria muito de ajuda-la. Porém, preciso saber qual é o erro!

Utilize:

catch(SQLException erro) { erro.printStackTrace(); JOptionPane.showMessageDialog(null,"Erro,dados não foram gravados"+erro); }

E cole a exceção gerada.

Tchauzin![/quote]

Oi Lina,bom dia!

Não sei se é isso que vc precisa:

java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] Parâmetros insuficientes. Eram esperados 4.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)

Oi,

A principio está faltando algum parâmetro em seu Insert…
Conecte via sql no se banco e mostre o desc da tabela. depois cole o resultado!

Tchauzin!

Oi,

Outra coisa que analisei, ele não está encontrando os parâmetros pois os campos do tipo String devem ser passados por aspas simples ’

Tchauzin!

Todos os campos são inteiros menos o data.

Campos --------------------------- Tipo
cod----------------------------------AutoNumeração
quant--------------------------------Número
numepar----------------------------Número
valorpar-----------------------------Número
data----------------------------------Data

Este erro não é do código acima. Como tens agora o código?

Nunca usei access
mais tenta usar esse trecho aqui…[code]
String sqlinsert=" insert into TB_recebe (cont,numepar,valorparc,data) values ("+quant+","+numepar+","+valorparc+",’"+data+"’)";

conecta_venda.statement.executeUpdate(sqlinsert);
[/code]

dxos,tentei mas não deu.

O código que gerou o erro:

[code]

private void bt_geraparcelaActionPerformed(java.awt.event.ActionEvent evt) {
double valorparc=0,valocompra;

           int numepar=0;   
           numepar=Integer.parseInt(tf_numparcelas.getText());   
           
               
          // if  (numepar > 0)   
          // {   
              valorparc=((Double.parseDouble(tf_valorliquido.getText()) / (Double.parseDouble(tf_numparcelas.getText()))));   
              tf_valorpar.setText(String.valueOf(valorparc));   
              int cont=1;   
                 
              Calendar data = Calendar.getInstance();     
                 
              SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");   
              String h=format.format(data.getTime());   
              String resp="";   
              for (cont = 1; cont <= numepar; cont++) {     
                 
                 
              data.add(Calendar.MONTH, 1);   
              //resp=(cont )+ (numepar) + (valorparc) + (format.format(data.getTime()));   
              //JOptionPane.showMessageDialog(null,cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime()))) ;   
              System.out.println(cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime())));   
             //   
              try   
              {   
                  String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (comt,numepar,valorparc,data)";//os campos a tabela são esses mesmo   
                 
                   
                 
                  conecta_venda.statement.executeUpdate(sqlinsert);   
                  JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso");   
           
                 // atualizar resulset;   
                 conecta_venda.resultset=conecta_venda.statement.executeQuery("select * from TB_recebe order by "+oi);   
           
                 conecta_venda.resultset.first();//va   
                 
              }   
               catch(SQLException erro)     
               {     
                 erro.printStackTrace();   
                  JOptionPane.showMessageDialog(null,"Erro,dados não foram gravados"+erro);     
               } 
               
               
            }   

} [/code]

Eu estava pensando em guardar o resultado do laço em um vetor ,será que a certo?

:oops:help…

utilizando a concatenação que eu mandei, continuou com o mesmo erro ?