C#、WinForms、DataGridView、DataTable。私のフォームでは、ユーザーは新しい行にデータを入力できます(レコードの単一のレコードビューをポップアップするのではなく)。ユーザーは自分の[保存]ボタンをクリックすると、クリックイベントが次のようになります。DataTable.GetChanges(DataRowState.Added)はNULL値で失敗します。
DataTable dtAddRows = this.SomeFictitiouslyNamedDataSet.SomeFictitiouslyNamedDataTable.GetChanges(DataRowState.Added);
私の仮定は、列挙型とにGetChangesを呼び出すと、私は、実行時にグリッドに追加された行のセットを取得しようとしていることです。しかし、 "Last_Updated_DT"(表示および読み取り専用でなければならない)列のうちの1つが、データテーブルに書き込むときに読み込まれる日付列であるため、エラーが発生します。ただし、DataSetには、この列をnullにすることはできないという規則があります。
問題は、Last_Updated_DT列が実際にnull(驚きの驚き)であることを示すエラーが発生します。その新しい行、およびグリッドでは列が読み込み専用であるため、もちろんnullです。
実際に追加された行を取得する前に、このエラーを回避するか、その列の値を埋め込むにはどうすればよいですか?後世の便宜上
その行はコンパイルされますか?または、DataSetに名前を付けましたか?DataSet?あなたのDataTable ... DataTable? – LarsTech
デフォルト値は読み取り専用の列に設定できます。新しい行はnullの代わりにその値を持ちます。 – Kinetic
@KiNeTiC DateTime.Nowのデフォルト値を設定できますか?これは、GUIからのテキスト以外のもの、およびクリックイベントでのImの後には、その遅すぎるとは思えません。 –