none
[RESOLVIDO] Salvar todos os dados de uma coluna de um dataGridView em uma variável - C# RRS feed

  • Pergunta

  • Boa noite pessoal,

    Gostaria de saber se tem como eu pegar todos os dados de uma coluna (incluindo todas as linhas dessa coluna) e salvar uma variável, e depois exibir o resultado em um Form diferente. Eu tentei usar array mas não to sabendo fazer, se alguém puder me ajudar por favor, muito obrigado!


    • Editado Haarlem N quarta-feira, 19 de setembro de 2018 23:34 Dúvida resolvida
    domingo, 16 de setembro de 2018 20:39

Respostas

  • Boa noite Marcos, na verdade ficou assim:

    for (i = 0; i <dataGridView1.Rows.Count-1; i++)
    
                {
                    x += Convert.ToString(dataGridView1.Rows[i].Cells[0].Value) + "\n";             
                }

    Eu estava tendo erro de índice ainda, mas dessa forma que fiz deu certo do jeito que eu esperava, muito obrigado pela sua ajuda e a ajuda do Agnaldo, vocês clarearam a minha mente.

    • Marcado como Resposta Haarlem N quarta-feira, 19 de setembro de 2018 23:33
    quarta-feira, 19 de setembro de 2018 23:33

Todas as Respostas

  • onde você quer pegar?

    direto no BD ou em algum datagridview?

    domingo, 16 de setembro de 2018 23:32
  • Direto do dataGridView, to fazendo um programa sem banco. Eu acabei por usar o dataGridView pra ter onde salvar a informações adicionadas pelo usuário, até tentei com array mas não consegui.
    domingo, 16 de setembro de 2018 23:36
  • faz um laço no dgv

    //percorre o grid
                    for (int i = 0; i < dgvConsumo.Rows.Count; i++)
                    {//RETORNA VALOR DA CELULA 
                            valores = valores + Convert.ToInt16(dgvConsumo.Rows[i].Cells[4].Value);
                            
                        }
                   

    veja este exemplo


    • Editado Marcos_Roberto domingo, 16 de setembro de 2018 23:45
    • Sugerido como Resposta Marcos_Roberto segunda-feira, 17 de setembro de 2018 21:08
    domingo, 16 de setembro de 2018 23:45
  • Boa noite Marcos,

    Fiz da forma que você indicou e me retorna um erro nessa linha: x = x + Convert.ToInt16(dgvConsumo.Rows[i].Cells[4].Value);

    "O índice estava fora do intervalo. Ele deve ser não-negativo e menor que o tamanho da coleção."

    Poderia me ajudar ? Muito obrigado.

    terça-feira, 18 de setembro de 2018 01:02
  • Boa noite Marcos,

    Fiz da forma que você indicou e me retorna um erro nessa linha: x = x + Convert.ToInt16(dgvConsumo.Rows[i].Cells[4].Value);

    "O índice estava fora do intervalo. Ele deve ser não-negativo e menor que o tamanho da coleção."

    Poderia me ajudar ? Muito obrigado.

    No caso ali no "dvgConsumo" eu coloquei o nome do meu dvg só pra constar
    terça-feira, 18 de setembro de 2018 01:03
  • verifica a coluna.... se está certa.

    o laço deve iniciar após carregar o dgv

    terça-feira, 18 de setembro de 2018 01:11
  • Desculpa Marcos, não entendi

    O laço inicia após carregar todos os dados no dgv, mas não sei o que verificar na coluna, o código está dessa forma:

    for (i = 0; i <= dataGridView1.Rows.Count; i++)
                {
                    x = x + Convert.ToInt16(dataGridView1.Rows[i].Cells[4].Value);
                }

    O meu dgv só tem uma coluna.

    Eu tentei colocar o nome da coluna no lugar do 4 em "Cells[4]", coloquei o nome da coluna: Cells["Column1"], mas não deu assim também.

    terça-feira, 18 de setembro de 2018 01:31
  • for (i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    x = x + Convert.ToInt16(dataGridView1.Rows[i].Cells[0].Value);
                }
    tente ai!
    terça-feira, 18 de setembro de 2018 01:52
  • Saudações.

    Já que só tem uma coluna basta pegar o indice 0(zero)

    for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    valores += Convert.ToInt16(dataGridView1.Rows[i].Cells[0].Value);
                }

    Atenção ao Convert.ToInt16, pois isso vai depender do tipo de variável que está recebendo os valores e também de até que valor está na coluna do DataGridView.

    o Int16 vais aceitar valores entre -32.768 a 32.767.

    Se você tentar converter um valor que não esteja neste intervalo vai dar erro. Pesquise se não seria interessante outros intervalos como o int32 ou int64.

    E por fim se a coluna não for numérica e do tipo inteiro(int) vai dar erro também.

    Tirei o sinal de =(igual) no laço for do DataGridView, o seu indice (i) começa com 0(zero).

    Atenciosamente,
    ____________________________________
    Agnaldo Guimarães

    Se te ajudei, sinalize como "útil" e lembre-se de "marcar como resposta".
    Quando você marca como resposta os outros visitantes encontram a solução facilmente.

    ** Para que o mau prevaleça basta que os bons não façam nada....



    terça-feira, 18 de setembro de 2018 02:00
  • Boa noite,

    Muito obrigado pelas respostas Marcos e Agnaldo, ainda retorna erro de que a cadeia de caracteres de entrada não estava em um formato correto, acredito que seja porque eu tenho texto no dgv.

    terça-feira, 18 de setembro de 2018 22:40
  • string valores;

    for (int i = 0; i < dataGridView1.Rows.Count; i++) { valores += dataGridView1.Rows[i].Cells[0].Value; }

    se for isso, então agora dará certo.
    quarta-feira, 19 de setembro de 2018 00:52
  • Boa noite Marcos, na verdade ficou assim:

    for (i = 0; i <dataGridView1.Rows.Count-1; i++)
    
                {
                    x += Convert.ToString(dataGridView1.Rows[i].Cells[0].Value) + "\n";             
                }

    Eu estava tendo erro de índice ainda, mas dessa forma que fiz deu certo do jeito que eu esperava, muito obrigado pela sua ajuda e a ajuda do Agnaldo, vocês clarearam a minha mente.

    • Marcado como Resposta Haarlem N quarta-feira, 19 de setembro de 2018 23:33
    quarta-feira, 19 de setembro de 2018 23:33