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