Obtener texto solo de una columna específica de DataGridView
-
03-07-2019 - |
Pregunta
Tengo un DataGridView que se rellena con 4 columnas y varias filas de datos. Quiero iterar a través de DataGridView y obtener el valor de celda de solo una columna específica , ya que necesito que estos datos pasen a un método.
Aquí está mi 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());
}
}
Esto parece pasar por todas las celdas, sin embargo, necesito poder 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());
}
}
Solución
¿No solo desea eliminar el bucle interno foreach
? ¿O me he perdido algo?
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());
}
Otros consejos
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());
}
}
}
¿Tal vez podrías revisar el índice de columnas? Sin embargo, aún circularía por todas las celdas.
if (cell.Value == null || cell.Value.Equals("") || cell.ColumnIndex != 2)
{
continue;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow