■96499 / inTopicNo.4) |
Re[3]: Datagridviewのセル編集確定方法 |
□投稿者/ WebSurfer (2171回)-(2020/12/02(Wed) 14:33:57)
|
■No96494 (harupapa さん) に返信
> 値を変更してもそのセルにいたままの状態ではDataRowState.Modifiedになりません。
確かにそのようですね。
Visual Studio のデータソース構成ウィザード(以下の記事参照)を使って作った定番のアプリで
確認できました。
チュートリアル : データベースへのデータの保存 (単一テーブル)
https://docs.microsoft.com/ja-jp/previous-versions/0f92s97z(v=vs.120)
自動生成される更新のコードは以下の通りですが(コメントとその下の一行を除く)、質問者さん
のコードで this.Validate(); が追加できるのであれば、それを追加してみてはいかがですか?
private void productsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
// DataRow の RowSate をチェックするため追加
DataTable dt = this.northwindDataSet.Products;
this.Validate();
this.productsBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.northwindDataSet);
}
変更したセルから移動しないで更新をかけると(ボタンクリックで上のイベントハンドラへ制御を飛
ばすと)、コメントの直下の dt の当該 DataRow の RowState は DataRowState.Unchanged ですが、
this.Validate(); の後は Modified に変わるので、UpdateAll で編集結果が DB に反映できるという
仕組みになっているようです。
|
|