2010-04-05 53 views
7

Mi chiedo quale sia il modo migliore per andare a scorrere tutte le righe in una vista datagrid e ottenere i valori dalle celle.
Ecco cosa sto pensando di fare, ma non mi piace molto perché se riorganizzo le colonne, allora anche il codice dovrà essere cambiato.Per un DataGridView, come ottengo i valori da ciascuna riga?

for (int i = 0; i < dataGridView.RowCount; i++) 
{ 
    string Value0 = dataGridView1.Rows[i].Cells[0]; 
    string Value1 = dataGridView1.Rows[i].Cells[1]; 
    string Value2 = dataGridView1.Rows[i].Cells[2]; 
} 

risposta

11

È possibile utilizzare un foreach per scorrere i DataGridViewRow s all'interno del DataGridView e utilizzare i nomi di colonna per recuperare i valori dalla Cells:

foreach (DataGridViewRow dr in dataGridView.Rows) 
{ 
    string col1 = dr.Cells["Col1"].Value.ToString(); 
    string col2 = dr.Cells["Col2"].Value.ToString(); 
    string col3 = dr.Cells["Col3"].Value.ToString(); 
} 
+1

Grazie, questo è quello che stavo cercando, ma ho dovuto fare un piccolo cambiamento da "dr.Cells [" Col1 "]. ToString()" a "dr.Cells [" Col1 "]. Value.ToString()" – skid

+0

Contento che ha funzionato per voi. Ho modificato la mia risposta per aggiungere "Valore" per chiunque altro trovi questa risposta. – CAbbott

+0

Ninja'd, stavo per aggiungere è necessario avere il valore per ottenere i dati corretti dalla cella. – Justin

1

NullException può verificarsi per evitare questo errore si può modificare il codice di cui sopra come

foreach (DataGridViewRow dr in dataGridView1.Rows) 
{ 
    //variables with looop through 
    string col1 = Convert.ToString(dr.Cells["col1"].Value); 
    string col2 = Convert.ToString(dr.Cells["col2"].Value); 
    string col3 = Convert.ToString(dr.Cells["col3"].Value); 
} 
Problemi correlati