skid skid - 8 months ago 53
C# Question

For a DataGridView, how do I get the values from each row?

I am wondering what is the best way to go iterate through all the rows in a datagridview and get the values from the cells.

Here is what I am thinking of doing, but I don't really like it because if I rearrange the columns then the code will also have to be changed.

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];


You can use a foreach to iterate over the DataGridViewRows within the DataGridView and use the column names to retrieve the values from the 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();