- - PR -
ADO.NETのデータセットの更新について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-06 08:32
どなたか、ご存知のかた教えて下さい。
ASP.NETで開発を行っていますが、ADO.NETのデータセットの内のデータテーブルの行について、削除、更新、追加を行った後にDataGridコントロールにDataBindした場合にDataGridに削除、更新、追加は反映されるのでしょうか。 また、Findメソッドを実行した場合に削除、追加したデータは検索できるのでしょうか。変更したデータは変更後のデータが検索されるのでしょうか。 削除、更新、追加はいずれも、まだDBに反映前の状態で、RowStateがそれぞれ、Deleted、Changed、Addedの状態です。 私が、実際に試したところ、削除、変更、追加したデータ全て(変更したデータは変更後の状態)がDataGridに表示されて、Findメソッドでも検索できるようなのですが・・・ 削除したデータはDataGridに表示されず通常のやり方ではFindメソッドでも検索できないと聞いたことがあるのですが・・・(こちらの動きのほうが自然だと思うのですが)どちらが正しいのでしょうか? | ||||
|
投稿日時: 2005-01-06 08:55
変更した後にDataRow.AcceptChanges メソッド を呼べばどうでしょうか?
| ||||
|
投稿日時: 2005-01-06 09:01
DataRow.AcceptChanges メソッドを実行してしまうとRowStateがUnchangedになってしまい、UpdateメソッドによるDBへの実更新ができなくなってしまうのではないのでしょうか? | ||||
|
投稿日時: 2005-01-06 09:36
DataTable内の行(DataRow)は、更新状態を管理する為、行バージョン(DataRowVersion)
を持っており、 これにより、更新前または更新後のデータにアクセスできる構造になっています。 示された状態から想像するに、DataRowVersionはDefaultの状態と思われますが、 これをCurrentにすることで、削除された行が除かれたデータにアクセスできます。 行バージョン(DataRowVersion)についての詳細は、下記の資料を参考にして下さい。 行の状態とバージョン |
1