对于DataGridView,如何从每行获取值?

时间:2010-04-05 21:24:49

标签: c# winforms datagridview

我想知道迭代数据网格视图中所有行的最佳方法是什么,并从单元格中获取值。
这是我在想的事情,但我不是很喜欢它,因为如果我重新安排列,那么代码也必须改变。

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

3 个答案:

答案 0 :(得分:11)

您可以使用foreach来迭代DataGridViewRow中的DataGridView并使用列名来检索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 :(得分:1)

可能会出现NullException以避免此错误,您可以修改上面的代码,如下所示

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

答案 2 :(得分:0)

我终于明白了。我必须显式键入迭代器,而不是使用var

foreach(DataGridViewRow row in grid.Rows)
{
   foreach(DataGridViewCell cell in row.Cells)
   {
       //Do Stuff
   }
}