Utilizando DataGrid View como tabela temporária

19/06/2010

Boa noite. Como comentei anteriormente estou desenvolvendo um projeto que visa controlar ordens de serviço, atualmente esse projeto se encontra em fase de  finalização, porém cheguei em um ponto o qual não sei por onde iniciar, a situação é a seguinte: Estou no form que fecha a Ordem de serviço, e nesse form preciso adcionar ao BD os itens(peças) que vou utilizar nessa OS como se fosse um carrinho de compras, eu pensei em criar uma tabela temporária utilizando um datagridview e a quantidade e a peça que eu digitasse em textbox's fossem para esse datagrid e depois que a operação fosse terminada ai sim adcionar tudo na tabela de verdade. Minha dúvida é se o datagridview é a melhor opção para essa situação e de que forma eu estaria realizando essas adições. estou utilizando windows Form e o Bd em access, desde já expresso minha gratidão pelo forum.

Sérgio Pereira

Respostas

22/06/2010

Nilson Currículo

Caro Sérgio,

Utilizar um DataGridView é uma solução válida. Inclusive se o mesmo for apresentado na tela, refletindo a informação do usuário a cada item inserido.

Também estou iniciando com C#, e abaixo vou lhe informar a técnica que utilizei. Mas já lhe adianto que não sei se é a melhor. Porém, pode lhe ajudar, e funciona.

Digamos que o Grid conterá três colunas: Item, Descricao e Quantidade

1 - Crie um DataSet não tipado em seu form (vou chamar o DataSet de dsOS);

2 - Pelo VS, adicione ao DataSet uma Tabela e, para a mesma, adicione as três colunas acima;

3 - No código, crie um método que será chamado quando o usuário tiver informado os três campos no formulário (vou chamar InsereItemGrid());

Abaixo o código comentado:

private void InsereItemGrid()
    {
        //Esse método é opcional. Você deve codificá-lo para testar se os dados informados são válidos
        if (!ValidaFormularioEquipamento())
        {
            return;
        }
        //Essa variável armazenará o conteúdo do formulário e será utilizada para a inclusão dos dados na tabela do DataSet
        object[] ValoresColunas = new object[3];
        
        ValoresColunas[0] = int.Parse(txtItem.Text);
        ValoresColunas[1] = long.Parse(txtDescricao.Text);
        ValoresColunas[2] = int.Parse(txtQuantidade.Text);

        //Cria uma nova linha
        DataRow row = dsOS.Tables[0].NewRow();

        //Insere o conteúdo do formulário
        row.ItemArray = ValoresColunas;

        //Adiciona a linha com conteúdo na tabela do DataSet
        dsEquipamentos.Tables[0].Rows.Add(row);

        //Essa linha também é opicional. Serve para limpar o conteúdo digitado, já que o mesmo consta no Grid
        this.LimpaCamposForm();

        //Esse comando limpa a seleção do Grid
        dataGridView1.ClearSelection();
        }
    }


4 - Faça uma chamada do método acima a partir do evento Click do Button que você criou para o formulário.

Depois você pode percorrer o DataGridView para gravar sua tabela no banco de dados.

Espero ter ajudado. Se tiver alguma dúvida, favor postar. Como disse, também estou iniciando com C# e não sei se a técnica acima é a ideal, mas para minha aplicação está funcionando sem qualquer problema.

O que aprendi foi com a ajuda deste Site, as revistas e as video-aulas que a equipe da Devmedia preparou.

Um abraço a você e a todos os que me auxiliaram e continuam auxiliando.
Responder Citar

22/06/2010

Sérgio Pereira

Grato pela atenção e pelo tempo cedido Nilson
Responder Citar