Frage

Ich habe eine Datagridview, die mit 4 Spalten und mehreren Zeilen von Daten gefüllt wird. Ich möchte durch die Datagridview zu durchlaufen und den Zellenwert von eine bestimmte Spalte nur bekommen, da ich diese Daten müssen in eine Methode zu übergeben.

Hier ist mein Code:

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());  
    }
}

Das scheint nur auf alle Zellen durchlaufen, jedoch muss ich der Lage sein, so etwas wie angeben:

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());
    }
}
War es hilfreich?

Lösung

Wollen Sie nicht nur die innere foreach Schleife entfernen? Oder habe ich etwas verpasst?

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());
}

Andere Tipps

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());
      }
   }
}

Vielleicht könnten Sie die Column überprüfen? Wäre noch eine Schleife durch alle Zellen though.

if (cell.Value == null || cell.Value.Equals("") || cell.ColumnIndex != 2)
{
    continue;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top