0

Access データベースにバインドされている DataGridView があります。DataGridView で直接編集を行うと、データベースを適切に更新できますが、次のようなものを使用すると:

dgView.Rows[0].Cells[1].Value = "Some text";

行0の最初のセルにテキストを書き込みますが、次に呼び出すと:

dAdapter.Update(dTable);

データベースを更新しません。代わりに、古い値が保持されます。自分でコードを編集し、セルをダブルクリックして入力して「テキスト」と書いた場合、問題なく更新されます。それが問題であることは知っていますが、実際にはそれが何であるかはわかりません。

助けてください、私は本当にこれを成し遂げる必要があります (これは学校のプロジェクトです)。ご不明な点がございましたら、お気軽にお問い合わせください。前もって感謝します。

バリ

4

1 に答える 1

0

ここでの問題は、DataGridView をプログラムで更新すると、DataGridView の基になるデータ ソース (DataTable) が変更されたことが通知されないため、データ ソースではなく UI だけが変更されることです。

DataGridView.BeginEditメソッドを使用して、次のようにこれらのイベントを発生させることができます。

dgView.BeginEdit(false);
dgView.Rows[0].Cells[1].Value = "Some text"; 
dgView.EndEdit();

そのまま DataGridView を介してプログラムで DataTable を更新しようとするのではなく、DataTable を直接更新することをお勧めします。

于 2012-07-10T22:12:07.947 に答える