Для DataGridView, как я могу получить значения из каждой строки? - PullRequest
7 голосов
/ 06 апреля 2010

Мне интересно, как лучше всего пройти итерацию по всем строкам в сетке данных и получить значения из ячеек.
Вот что я думаю сделать, но мне это не очень нравится, потому чтоесли я переставлю столбцы, то код также придется изменить.

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 ]

11 голосов
/ 06 апреля 2010

Вы можете использовать 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 голос
/ 11 августа 2017

Может возникнуть исключение 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);
}
0 голосов
/ 25 мая 2019

Я наконец получил это. Мне пришлось явно вводить итераторы вместо использования var.

foreach(DataGridViewRow row in grid.Rows)
{
   foreach(DataGridViewCell cell in row.Cells)
   {
       //Do Stuff
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...