- - PR -
DataTableをDataSetに再セット
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-10-27 13:33
お世話になります。
現在VB.NETで開発を行っているのですが、件名にもあるように、DataTableをDataSetに再セットする方法を悩んでいます。 Dim dt as DataTable = DataSet1.Tables(0) で取得したdtを再度、DataSet1に再セットしたいのですが、どのようにすればよろしいでしょうか? 変な質問になってしまったかもわかりませんが、アドバイスお願いします。 | ||||
|
投稿日時: 2005-10-27 13:41
こんにちは。
そのまま、Tables プロパティを使えばいけるとおもいます。 (削除してから追加かな) でも、再セットする必要ないのでは? dt を編集しているという事は、DataSet1.Table(0)を編集しているという事ですし。 | ||||
|
投稿日時: 2005-10-27 17:32
囚人さん、ありがとうございます。
説明不足で申し訳なかったのですが、 Dim dt as DataTable = DataSet1.Tables(0) で取得したDataTableを新しいDataSet2に再セットするイメージです。 「Tableプロパティの削除して追加」とはどういう感じでしょうか? できれば、具体的に教えていただけると幸いです。 申し訳ありませんが、よろしくお願いします。 | ||||
|
投稿日時: 2005-10-27 17:55
なるほど。
DataSet2.Tables(0) = dt というのが出来なくて困ったのかな。 Tables プロパティの型は何ですか? そしてその型のヘルプを見ると・・・。 | ||||
|
投稿日時: 2005-10-27 18:07
#教育的指導な流れのため削除(* ̄ー ̄)ニヤリッ [ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-10-27 18:14 ] | ||||
|
投稿日時: 2005-10-27 18:08
> Dim dt as DataTable = DataSet1.Tables(0)
> で取得したDataTableを新しいDataSet2に再セットするイメージです。 このdtを直接DataSet2に追加しようとするとエラーになりますよね。 で、新しいDataTableを一個つくってやって、そこにDataTableのClone()メソッドを 使ってないようをコピー。 そのうえでDataSet2にセットすればよかったかと。 [ メッセージ編集済み 編集者: どっとねっとふぁん 編集日時 2005-10-27 18:09 ] | ||||
|
投稿日時: 2005-10-27 18:12
>このdtを直接DataSet2に追加しようとするとエラーになりますよね。
あーなるほど。 他の DataSet に属していたら単純にはいかなかったんですね。 失礼しました。 | ||||
|
投稿日時: 2005-10-27 19:33
今晩は、でっちです。
とりあえず、ピンポイントで
データを含めて複写する場合は、Copyメソッドでは? Cloneは構造だけの複写だったと記憶しています。 「元のDataSetから削除して、別のDataSetに追加」する方法も、今試してみたら動きました。 ただ、「元のDataSetからDataTableを削除する」ことは当然元のDataSetの構造を壊すと言うことですので、 その是非を考慮に入れた上で、複写とどちらを採用するか決めた方が良いでしょうね。 個人的には、一度作ったDataSetを破壊するような設計(実装)はどうかと思います とりあえず複写に1票 |
1