Usuário com melhor resposta
[RESOLVIDO] Salvar todos os dados de uma coluna de um dataGridView em uma variável - C#

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
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
Todas as Respostas
-
-
-
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
-
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.
-
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.
-
-
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.
-
-
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....
- Editado Agnaldo Guimarães terça-feira, 18 de setembro de 2018 02:08
-
-
se for isso, então agora dará certo.string valores;
for (int i = 0; i < dataGridView1.Rows.Count; i++) { valores += dataGridView1.Rows[i].Cells[0].Value; }
- Editado Marcos_Roberto 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