我有一个网格,并且数据在网格中加载;我只需选择一行并按编辑按钮。在编辑时,打开新的子表单,并将行单元格的值传递给子表单上的控件。但是,当我更改子窗体上的某些值并将它们保存为网格中的替换时,出现此错误:当控件是数据绑定的数据绑定时,无法以编程方式将行添加到DataGridView的行集合中。这个错误的原因是什么以及如何克服这个错误。当控件是数据绑定的行时,无法以编程方式将行添加到DataGridView的行集合中
回答
原因是“控件数据绑定时行不能以编程方式添加到DataGridView的行集合”。它与结晶水一样清澈
该解决方案?难道不行添加到DataGridView的行集合,将它们添加到底层数据源集合(在您设置到DataGridView的DataSource属性的集合)
添加或编辑你的行中的DataGridView
的DataSource
。 不要直接添加/编辑到您的网格。
如果您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);
要编辑
DataSet dsTempDataTable = (DataSet)MainApplication.dgvBooksDetails.DataSource;
DataTable dt = dsTempDataTable.Tables[0]; // use table index/name to get the exact table
dt.Rows[0]["columnName"] = "some value";
// your row edit code
dt.AcceptChanges();
dt.Row [0]:这里0表示行的索引?而且我怎么可以处理更多的行中的一列?我的意思是,如果我在一行中有7列,可以将值设置为单元格? – 2012-07-12 05:37:45
@ Itz.Irshad非常简单,你可以使用像这样的列名.. dt.Rows [0] [“column1”] =“value1”; dt.Rows [0] [“column2”] =“value2”; dt.Rows [0] [“column3”] =“value3”;等等 – Talha 2012-07-12 05:57:06
是的,我做到了。但是,因为我有一个'DataSet'作为'DataSource'到'Grid' ....所以得到这个错误:*无法将类型为'System.Data.DataSet'的对象转换为键入'System.Data.DataTable' 。*在第一行有代码:'DataTable dtTempDataTable =(DataTable)MainApplication.dgvBooksDetails.DataSource;' – 2012-07-12 06:00:41
我有同样的问题,我发现解决方案。
//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
- 1. 当控件是数据绑定时,无法以编程方式将行添加到datagridview的行集合
- 2. 错误“当控件是数据绑定时,行不能以编程方式添加到datagridview的行集合中”
- 3. 以编程方式将行添加到数据绑定的DataGridView?
- 4. C#DataGridView以编程方式添加行
- 5. 将行添加到绑定的datagridview
- 6. 以编程方式将非数据绑定列添加到gridview
- 7. DataGridView控件处于虚拟模式时无法添加行?
- 8. WinForms - 在运行时以编程方式将大量控件添加到面板
- 9. 无法将行添加到委托函数中的datagridview中
- 10. 以编程方式将dependentAssembly添加到运行时\ assemblyBinding
- 11. 行不能以编程方式添加到数据网格
- 12. ASP.net以编程方式将数据集绑定到gridview
- 13. 添加css运行时到表格行和数据绑定行
- 14. 如何以编程方式将行插入到DataGridView中?
- 15. 以编程方式添加到div时,无法看到我的部分控件
- 16. 以编程方式将数据键添加到现有的DataKeys集合
- 17. C# - DataGridView无法添加行?
- 18. 无法添加行C#DataGridView
- 19. 每次将项目添加到集合时执行方法
- 20. 数据绑定不在Form.Controls集合中的DataGridView控件?
- 21. 我可以以编程方式将行添加到WPF数据网格吗?
- 22. C#Datagridview数据绑定时不添加新行
- 23. 将组合框添加到特定行的datagridview中
- 24. 检查是否新行添加到DataGridView,如果是,获取新行的集合
- 25. Winforms TableLayoutPanel以编程方式添加行
- 26. 将数据绑定列数据绑定到每行datagridview(不是整列)
- 27. 无法访问以编程方式添加的控件(C#)
- 28. C#将行添加到datagridview
- 29. 将行添加到DataGridView
- 30. 绑定到DataGridView的集合
那么你可以在你设定的DataGridView的'DataSource'物业的行/记录添加到您的数据源 – V4Vendetta 2012-07-12 04:52:28
? – Talha 2012-07-12 04:56:11
好吧,我有一个DataSet作为Grid的DataSource。我如何在DataSet中添加行或者我需要将行添加到表中,然后将该表添加到数据集中? – 2012-07-12 05:32:30