C#WinForms:向DataGridView添加行,这是Data绑定的

时间:2015-04-17 13:15:51

标签: c# winforms datagridview

我有一个Datagridview,它包含两个按钮,一个AddEntry按钮和一个FormEntry按钮。无论何时加载表单,excel表中的数据都将加载到gridview。

将数据从Excel工作表加载到gridview时,我没有任何问题。 AddEntry按钮会将我重定向到另一个表单,该表单有一些文本框可以添加条目。

但是,当我尝试通过单击AddEntry按钮向gridview添加新条目时,我收到此错误:"行不能编程地添加到控件绑定/数据绑定的行集合中#34;

这是我的代码隐藏的AddEntry按钮:

 private void AddEntry_Click(object sender,eventargs e)
 {
     gridview.Rows.Add(_sno.Text,_date.Text,_category.Text);
 }

表单中的构造函数,其中包含用于添加数据的文本框:

DataGridView gridview;
public FinanceEntries_Open(DataGridView _grid,string filename)
{
    InitializeComponent();
    label2.Text = filename;
    gridview = _grid;
}

2 个答案:

答案 0 :(得分:0)

如果您使用DataSource的{​​{1}}属性绑定到数据,则无法将行直接显式添加到DataGridView。您必须直接向数据源添加行。

相反,您可以将此新行添加到绑定到DataGridView的DataSet或DataTable。

您可以使用DataTable.NewRow方法向绑定数据添加新行并刷新GridView。

如果您绑定DataGridView

DataTable

如果您使用的是DataTable dataTable = new DataTable(); DataRow newRow = dataTable.NewRow(); // add new data to this newRow dataTable.Rows.Add(newRow);

List

答案 1 :(得分:0)

由于您正在使用绑定,因此需要将对象直接添加到基础集合而不是数据网格视图。如果使用列表或数据表,请将新对象添加到此集合。凭借绑定,它将显示在您的数据网格视图中。