动态地向datagridview添加行

时间:2016-02-24 14:01:01

标签: c# datagridview

我通常不发帖提问,我知道这个答案已经出现在某个地方,但我不是因为某些原因找到它。基本上,我有一个datagridview,它具有可变数量的列和可变数量的行。因此,当我为屏幕构建它时,我首先使用以下代码添加列:

// Set column names
for (int i = 0; i < count; i++)
{
  fieldName = fromFileFields[i];
  dtaRecordDisplay.Columns.Add(fromFileFields[i}, fromFileFields[i});
}

现在,我想用这样的东西填充视图中的行:

// Set row data
for (int i = 0; i < count; i++)
{
  dtaRecordDisplay.Rows.Add(Row1, Row2, etc., etc., etc..........);
}

我很难弄清楚循环能够一次添加所有数据行。有没有人对如何实现这一点有任何想法?

提前致谢!

3 个答案:

答案 0 :(得分:6)

在这种情况下,我会使用要处理的列和行填充DataTable,并将其绑定到网格。

DataTable dt = new DataTable();

// first add your columns
for (int i = 0; i < count; i++)
{
    dt.Columns.Add(fromFileFields[i]);
}

// and then add your rows
for (int i = 0; i < count; i++)
{
    var row = dt.NewRow();
    // Set values for columns with row[i] = xy
    dt.Rows.Add(row);
}

datagridview.DataSource = dt;

答案 1 :(得分:0)

您需要创建一个DataTable,然后将其绑定到网格视图。然后将行和列添加到其中,就像Marc所说:

https://stackoverflow.com/a/35604744/5882760

原因是,网格视图实例的列仅包含有关如何显示附加DataTable数据的信息。

它们包含有关要显示的columbs的信息,按什么顺序等等。

答案 2 :(得分:0)

尝试下面的代码,您可以向dataGridViews添加行,而无需任何数据源或数据表。

dataGridView1.AllowUserToAddRows = true;
dtaGridView1 row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
row.Cells[0].Value = "Your cell 0 Data";
row.Cells[1].Value = "Your cell 1 Data";
row.Cells[2].Value = "Your cell 2 Data";
   ………….
row.Cells[n].Value = "Your cell n Data";
dataGridView1.Rows.Add(row);