Ir para conteúdo
Fórum Script Brasil
  • 0

Salvar Dados do Grid no Banco


*Michelle*

Pergunta

Socorro gente, eu estou desesperada!

Eu tenho que entregar um projeto na semana que vem e não consigo resolver uma coisa que acho que seja simples.

Bom, eu tenho uma tela de orçamento onde informo os itens que quero incluir através de campos text. Tenho um botão que adiciona esses itens no grid e tenho um botão de Incluir que deve incluir todos os itens do grid na tabela do banco de dados (Postgres).

O meu problema é que eu achei um código de grid na internet que é gerado através de uma pagina grid.jsp cheia de functions e só é chamado pela página do orçamento através de um IFrame. E nas functions não consegui achar como ele faz pra incluir os itens no grid, sem contar que não tem onde incluir no banco.

Preciso da ajuda de vocês o mais rápido possível.

Se alguém tiver ou souber algum exemplo de grid dinâmico e que salve no banco do jeito que falei, por favor me respondam.

Lembrando que, pra piorar, meu projeto tá em 3 camadas (controle, modelo e dao) e o banco é Postgres.

As tabelas do banco eu já tenho só falta mesmo arrumar o bendito Grid!!!!

Helpppppppp me

Abraços,

Michelle

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá Michelle.

Que IDE você está usando para codificar?

De que forma você grava dados no banco geralmente?

Se baseando na forma que você grava dados no seu banco você pode criar um laço onde você andaria os itens do tal Grid e iria inserindo as informações na tabela do banco respeitando a estrutura do mesmo.

Segue um exemplo de Mestre-Detalhe de um projeto simples desenvolvido em NetBeans e Firebird:

private void gravar()
{
  if(operacao.trim().equals("I")) 
  {

    // Prepara as Variaveis e os componentes usados para gravar. Dividindo os mesmos para o cabeçalho e o item.

    Connection con_proc = ConectorFire.getTestConnection();
    PreparedStatement stmt_proc = null;
    DefaultTableModel tabela = (DefaultTableModel)this.jT_Produtos.getModel();
    stmt_cab = null;
    stmt_item = null;
    con_cab = ConectorFire.getTestConnection();
    con_item = ConectorFire.getTestConnection();            
    comando_cab = "insert into bc_venda_cab values(?,?,?,?,?,?)";
    comando_item = "insert into bc_venda_item values(?,?,?,?,?,?,?)";
        
    try
    {
      // função usada para pegar os dados dos campos e jogar nas variaveis usadas para gravar
      pegar_dados();

      //  função usada para verificar se o código já existe no banco.              
      if (verificaseexiste(vven_codigo) == false)
      {

        //grava o cabeçalho.
        stmt_cab = con_cab.prepareStatement(comando_cab);
        //
        stmt_cab.setInt(1,vven_codigo);
        stmt_cab.setInt(2,vven_clcodigo);
        stmt_cab.setInt(3,vven_vencodigo);
        stmt_cab.setDate(4, new java.sql.Date(format.parse(jTF_Data.getText()).getTime()));
        stmt_cab.setDouble(5, vven_total);
        stmt_cab.setString(6, null);
            
        stmt_cab.executeUpdate();
        

       //grava os itens.
        for (int i = 0; i<tabela.getRowCount();i++)
        {
          stmt_item = con_item.prepareStatement(comando_item);
              
          stmt_item.setInt(1, (i+1));
          stmt_item.setInt(2, Integer.parseInt(jTF_CabCodigo.getText()));
          stmt_item.setInt(3, Integer.parseInt(tabela.getValueAt(i, 0).toString()));
          stmt_item.setFloat(5, Float.parseFloat(tabela.getValueAt(i, 2).toString()));
          stmt_item.setString(4, "ABC");
          stmt_item.setDouble(6, Double.parseDouble(tabela.getValueAt(i, 3).toString()));
          stmt_item.setDouble(7, Double.parseDouble(tabela.getValueAt(i, 4).toString()));
             
          stmt_item.executeUpdate();
          
          //atualiza saldo dos produtos via storedProcedure.
          stmt_proc = con_proc.prepareStatement("EXECUTE PROCEDURE PROC_ATUALIZA_SALDO_PR(?,?)");
          stmt_proc.setInt(1, Integer.parseInt(tabela.getValueAt(i, 0).toString()));
          stmt_proc.setFloat(2, Integer.parseInt(tabela.getValueAt(i, 2).toString()));
          stmt_proc.execute();                      
        }                                                          
        
        //fecha as conexões.    
        con_cab.close();           
        con_item.close();
                             
        bloqueio(true);
        JOptionPane.showMessageDialog(rootPane, "Status: Registro gravado com sucesso!!!");            
      } else
        {  
          JOptionPane.showMessageDialog(rootPane, "Status: Registro já existente! Verifique!");
          con_cab.close();
        }
    } catch (Exception ex) 
      {
        ex.printStackTrace();    
      }
}

Na situação acima temos uma tela de venda onde gravamos dados em duas tabelas no banco de dados, ou seja, na tabela de cabeçalho e na tabela dos itens da venda. No caso dos itens eu uso um componente jTable para inserir os dados da mesma forma que você faz(usando jTexts para digitar os dados e jButtons para inserir na jTable) e para gravar estes itens eu uso um laço(for) onde percorro toda a jTable e insiro os dados no Banco.

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...