Array
(
)

Utilizando DataGrid View como tabela temporária

Sérgio Pereira
   - 19 jun 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.

Nilson
|
MVP
    22 jun 2010

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:

#Código

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.

0
|
0

Sérgio Pereira
   - 22 jun 2010

Grato pela atenção e pelo tempo cedido Nilson

0
|
0