我有一个网格,当数据加载到网格中时;我只需选择一行并按下编辑按钮。在编辑时,将打开新的子表单,并将行的单元格的值传递给子表单上的控件。但是,当我更改子窗体上的某些值并保存它们以替换为网格时,错误发生在我身上:当控件是数据绑定时,无法以编程方式将行添加到DataGridView的行集合。造成这种错误的原因是什么以及如何解决这个问题。
答案 0 :(得分:3)
原因是“当控件受数据限制时,无法以编程方式将行添加到DataGridView的行集合中”。它像结晶水一样清澈
解决方案? 不将行添加到DataGridView的行集合中,将它们添加到基础数据源集合(您正在设置DataGridView的DataSource属性的集合)
答案 1 :(得分:1)
在DataSource
的{{1}}中添加或修改您的行。 不要直接添加/修改你的网格。
如果您的DataGridView
并且想要添加新行
DataSource is DataSet
编辑
DataSet dsTempDataTable = (DataSet)MainApplication.dgvBooksDetails.DataSource;
DataTable dt = dsTempDataTable.Tables[0]; // use table index/name to get the exact table
DataRow dr = dt.NewRow();
// code to fill record
dt.Rows.Add(dr);
答案 2 :(得分:0)
我有同样的问题,我找到了解决方案。
//create datatable and columns
DataTable dtable = new DataTable();
dtable.Columns.Add(new DataColumn("Column 1"));
dtable.Columns.Add(new DataColumn("Column 2"));
//simple way create object for rowvalues here i have given only 2 add as per your requirement
object[] RowValues = { "", "" };
//assign values into row object
RowValues[0] = "your value 1";
RowValues[1] = "your value 2";
//create new data row
DataRow dRow;
dRow = dtable.Rows.Add(RowValues);
dtable.AcceptChanges();
//now bind datatable to gridview...
gridview.datasource=dtable;
gridview.databind();
来源:http://www.codeproject.com/Questions/615379/Adding-rows-to-datagridview-with-existing-columns