Obtendo texto apenas a partir de uma coluna específica de DataGridView
-
03-07-2019 - |
Pergunta
Eu tenho um DataGridView que é preenchida com 4 colunas e várias linhas de dados. Eu quero percorrer a DataGridView e obter o valor da célula da uma coluna específica única , desde que eu preciso esses dados para passar para um método.
Aqui está o meu código:
foreach (DataGridViewRow row in this.dataGridView2.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
if (cell.Value == null || cell.Value.Equals(""))
{
continue;
}
GetQuestions(cell.Value.ToString());
}
}
Isso só parece passar por todas as células, no entanto eu preciso ser capaz de especificar algo como:
foreach (DataGridViewRow row in this.dataGridView2.Rows)
{
foreach (DataGridViewCell cell in row.Cells[2])//Note specified column index
{
if (cell.Value == null || cell.Value.Equals(""))
{
continue;
}
GetQuestions(cell.Value.ToString());
}
}
Solução
Você apenas não quer remover o loop foreach
interior? Ou eu perdi alguma coisa?
foreach (DataGridViewRow row in this.dataGridView2.Rows)
{
DataGridViewCell cell = row.Cells[2]; //Note specified column index
if (cell.Value == null || cell.Value.Equals(""))
{
continue;
}
GetQuestions(cell.Value.ToString());
}
Outras dicas
foreach (DataGridViewRow row in this.dataGridView2.Rows)
{
DataGridViewCell cell = row.Cells["foo"];//Note specified column NAME
{
if (cell != null && (cell.Value != null || !cell.Value.Equals("")))
{
GetQuestions(cell.Value.ToString());
}
}
}
Talvez você possa verificar o ColumnIndex? Será que ainda percorrer todas as células embora.
if (cell.Value == null || cell.Value.Equals("") || cell.ColumnIndex != 2)
{
continue;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow