- - PR -
コピーしたDataTableのDataRowの変更内容を元Tableに反映
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-09-08 10:51
いつもお世話になります。
只今、WinアプリでDataGridを使用したアプリを作成しています。 大量のデータをDataGridに表示する事に備えてDataGridにページング機能を追加しました。 データベースに反映するためのDataTable(A)と表示用DataTable(B)を用意し、DataTable(A)から表示件数分だけ行(DataRow)をコピーしてDataGridのデータソースにしています。 この際、ページが切り替わるときやデータベースに反映するときに表示用DataTable(B)の内容をDataTable(A)に反映したいのですが、このときの効率のよい方法が分かりません。 表示用DataTable(B)からDataTable(A)へ行と列を指定して行数分変更する以外に方法はないのでしょうか?お知恵を拝借出来ますよう、よろしくお願いします。 | ||||
|
投稿日時: 2004-09-08 11:22
諸農です。
試していないのですが、DbDataAdapter.UpdateにDataTable(B)を 渡せばDBへの更新はうまくいくかもしれないですね。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2004-09-08 11:40
Jubeiさん、ご返答ありがとうございます。
>DbDataAdapter.UpdateにDataTable(B)を渡せば・・・ やってみましたがコードを記述した時点で怒られました。 DbDataAdapter.Updateメソッドの第一引数はDataSetなのでDataSetを指定しないといけないような気がするのですが・・。 | ||||
|
投稿日時: 2004-09-08 12:50
諸農です。
あれれ? ドキュメントを見る限りではDbDataAdapter.Update メソッドではDataTableやらDataRowの配列も渡せるようですけど。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2004-09-08 13:41
Jubeiさん、ご返答ありがとうございます。
>ドキュメントを見る限りではDbDataAdapter.Update メソッドではDataTableやらDataRowの配列も渡せるようですけど。 すいません。勉強不足でした、お恥ずかしい。 更新出来ました。ありがとうございます。 ただ、ページの遷移の事を考えるとDataTableをページ数分用意する等の工夫が必要になると思います。これからもう少し詰めていきたいと思います。 | ||||
|
投稿日時: 2004-09-08 19:27
うーん、やはり表示しているデータを編集してページを遷移する事を考えると元のDataTable(A)に変更を反映した方が良いのですかねー。『ページの遷移の事を考えるとDataTableをページ数分用意する』ってのも最初のDataTable(A)の意味がなくなりますよね。 また上手くできたら報告します。 | ||||
|
投稿日時: 2004-09-09 11:04
解決しました。
編集時にデータベースに反映するためのDataTable(A)の編集対象の行のインデックスを求めてからそのテーブルに対して編集を行い、表示用DataTable(B)にそれを反映して、データベースへの更新はDataTable(A)で行う事により解決しました。最後は内容がちょっとスレッドずれしましたけど・・・。 MSDNでWinアプリのDataGridのページング機能は読取専用でやってくださいって言ってるだけにちょっとややこしかったです。 |
1