BindingSource、DataSet、およびTableAdapterを使用してデータ バインド コントロールから挿入を処理する正しい順序はどれですか? これは私に永遠の混乱を引き起こしています。
新しい行を追加するために使用されるフォームがあります。
フォームを表示する前に、次のように呼び出します。
bindingSource.AddNew();
bindingSource.MoveLast();
保存時に、次のように呼び出します。
bindingSource.EndEdit();
tableAdapter.Insert([the row given to me as bindingSource.Current]);
問題はそれです
- を呼び出さないと
EndEdit()
、現在フォーカスのある TextBox の変更は保存されません - を呼び出す
EndEdit()
と、BindingSource の Current メンバーは、追加したばかりの行を指しなくなります。
Insert()
もちろん、BindingSource によって更新された DataTable とは対照的に、フォームからの値で呼び出すことはできますが、それではデータ バインディングを使用する目的が無効になります。これを機能させるにはどうすればよいですか?
TableAdapter.Update()
厳密に型指定された DataSet を使用しているため、DataSet 全体を呼び出すことができることを理解しています。ただし、データベースにバインドされていない外部キーがテーブルにあり、Insert() を呼び出す前に追加しています。