グリッドがあり、データがグリッドにロードされたとき。行を選択して編集ボタンを押すだけです。編集時に、新しいサブフォームが開かれ、行のセルの値がサブフォームのコントロールに渡されます。しかし、サブフォームのいくつかの値を変更し、それらを保存してグリッドに置き換えると、エラーが発生します:コントロールがデータバインドされている場合、行をプログラムで DataGridView の行コレクションに追加できません。このエラーの原因と、これを克服する方法。
質問する
12808 次
3 に答える
4
原因は、「コントロールがデータバインドされている場合、DataGridView の行コレクションに行をプログラムで追加できない」ことです。結晶水のように透明です
解決策は?行を DataGridView の行コレクションに追加せず、基になるデータソース コレクション (DataGridView の DataSource プロパティに設定しているコレクション) に追加します。
于 2012-07-12T05:16:18.547 に答える
1
の行を追加または編集しDataSource
ます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);
編集する
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();
于 2012-07-12T05:25:51.967 に答える