- - PR -
DataSetのコピーでは更新できない
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-03-14 14:36
申し訳ありません、またまた困ったことが
VB2005です。 2つのDataSetを使って(AとB) AのDataSetの内容をBのDataSetにセットし SqlDataAdapterのInsertCommandを実行処理をしていました。 ---- コード -------------------------- For Each dr In MyGPDS.Tables(0).Rows workrow = MyDS.Tables("B").NewRow workrow("KMK") = dr("KMK") MyDS.Tables("B").Rows.Add(workrow) Next DataAdapter.Update(MyDS, "B") ------------------------------------ このコードを いちいち項目を1個ずつセットするのではなく (項目数が多いとコーディングが大変な為) DatatSetごとCopyして行いたいのですが エラーになってしまいます。 MyDS = MyGPDS.Copy DataAdapter.Update(MyDS, "B") このようなことはできないのでしょうか? | ||||||||||||
|
投稿日時: 2008-03-14 15:06
「DataSet」「コピー」でググると幸せになれるかも。
あなたのどのスレもそうですが、もうちょっと自己解決の努力に時間を費やしてみてはいかがですか。 | ||||||||||||
|
投稿日時: 2008-03-14 20:44
ROWSTATEの変更
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=41667&forum=7&start=0 で話していましたね。
ではMyDSのBテーブルに新規行を追加しているので、各行はAddedにマークされ、Update呼び出し時にInsert文が発行されます。 しかし
このコードではMyGPDSの行状態に依存していしまいます。 Fillした直後はAcceptChangesが暗黙で呼び出され行状態は常にUnchangedです。 したがってMyGPDSのデータがデータベースへのFillで構成された場合Updateメソッドでは更新できません。
これで大丈夫なはずです。なんらかのループは避けられないと思います。 同じような処理が多くあるのなら、共通メソッドを検討してください。 DataTableと望むべき行状態を引数にとり、更新に使用できるDataTableを返すメソッドでも作ってみるとよいと思います。 | ||||||||||||
|
投稿日時: 2008-03-18 10:59
遅くなりすいません。
ugayaさんありがとうございす。 copyで解決しました。 |
1