DOBON.NETプログラミング掲示板過去ログ
1つのフォーム上に複数のDataSetは、仕様上許されない事?
題名: 1つのフォーム上に複数のDataSetは、仕様上許されない事?
著者: 新米起業人
日時: 2006/02/22 12:45:24
ID: 15201
この記事の返信元:
(なし)
この記事への返信:
[15208]
Re[1]: 1つのフォーム上に複数のDataSetは、仕様上許されない事?
trapemiya
2006/02/22 14:20:08
ツリーを表示
環境/言語:[WindowsXP、VB.NET、SQLServer]
分類:[.NET]
賢人の皆様にご指導を賜りたく思い、書込みさせて頂きます。
質問は、1つのフォーム上にトランザクション用のDataSetとマスタ用のDataSetを設けているのですが、このような造りは、そもそもVB.NET上許されている仕様なのでしょうか。
トランザクション用のDataSetは、DBに対して読み書きがあります。
マスタ用のDataSetは、フォームロード時にDBから取込みを行なったあと、DBへのアクセスはしません。主にコンボボックスのデータとして使用してます。
DBへのアクセス負担を少しでも解消しようと考え、DataSetを別々としたのですが、そのためか色々と不具合が見られるようになってしまいました。
例えば、トランザクション用のDataSetにFillメソッドにてデータを取込んでも、バインドしている各テキストボックスにデータが表示されない等。
(一旦、マスタ用のDataSetをClearして、データを取込むと表示されます。)
ネット上を色々と探してみましたが、1つのフォームで複数のDataSetを使用しているサンプルも見当たらず、途方に暮れております。
もし、なんらかの情報をお持ちの方は、教えて頂けないでしょうか。
「そんな造りはおかしい」ということでも結構です。
つたない説明でわかり難いかもしれませんが、よろしくお願い致します。
題名: Re[1]: 1つのフォーム上に複数のDataSetは、仕様上許されない事?
著者: trapemiya
URL:
http://blogs.wankuma.com/trapemiya
日時: 2006/02/22 14:20:08
ID: 15208
この記事の返信元:
[15201]
1つのフォーム上に複数のDataSetは、仕様上許されない事?
新米起業人
2006/02/22 12:45:24
この記事への返信:
[15209]
Re[2]: 1つのフォーム上に複数のDataSetは、仕様上許されない事?
中博俊
2006/02/22 14:40:07
ツリーを表示
一つのデータセットの中に2つのデータテーブルを持つのが普通だと思いますよ。
題名: Re[2]: 1つのフォーム上に複数のDataSetは、仕様上許されない事?
著者: 中博俊
URL:
http://naka.wankuma.com
日時: 2006/02/22 14:40:07
ID: 15209
この記事の返信元:
[15208]
Re[1]: 1つのフォーム上に複数のDataSetは、仕様上許されない事?
trapemiya
2006/02/22 14:20:08
この記事への返信:
[15218]
Re[3]: 1つのフォーム上に複数のDataSetは、仕様上許されない事?
新米起業人
2006/02/23 0:46:18
ツリーを表示
うーん
データセットはどうやっても問題ないです。
ただバインドをがりがりやりたいと1つのほうが便利ではありますね。
#ぜんぜん解決策じゃないですが(^^;;
題名: Re[3]: 1つのフォーム上に複数のDataSetは、仕様上許されない事?
著者: 新米起業人
日時: 2006/02/23 0:46:18
ID: 15218
この記事の返信元:
[15209]
Re[2]: 1つのフォーム上に複数のDataSetは、仕様上許されない事?
中博俊
2006/02/22 14:40:07
この記事への返信:
(なし)
ツリーを表示
trapemiyaさん、中博俊さん、返信ありがとうございます。
ん〜、やっぱり、邪道な作りなんですかね。1フォームに複数データセットって。
> 一つのデータセットの中に2つのデータテーブルを持つのが普通だと思いますよ。
この場合、片方のデータテーブルだけにFillメソッドにて新たなデータを取込みたい場合でも、もう片方のデータテーブルにもFillメソッドにてデータを取込む必要があるんですよね。この場合、DBへの無駄なアクセスって増えますよね? 何かよい対策案ってあるのでしょうか?
私が思いついているのは、
=========================================================================
Me.OleDbConnection1.Open()
'DBより一時データセットに情報を取得する。
Me.OleDbDataAdapter1.Fill(dataSetTemp) 'テーブル1用(トランザクション)
Me.OleDbDataAdapter2.Fill(dataSetTemp) 'テーブル2用(マスタ)
Me.OleDbConnection1.Close()
'データセットを初期化する。
dataSet.Clear()
'データセットに取得したレコードをマージする。
dataSet.Merge(dataSetTemp)
=========================================================================
をトランザクションのデータを変更する度に実行するしかないかと。
Me.OleDbDataAdapter2.Fill(dataSetTemp) 'テーブル2用(マスタ)
が、無駄なので、何とかならないものかと思うのですが。
> データセットはどうやっても問題ないです。
「どうやっても問題ない」っていうのは、どういう意味でしょうか。
1フォームに複数のデータセットを置いても、基本的には動作するよって事でしょうか? それとも別の意味でしょうか。
よろしければ、もう少しわかりやすい説明をお願い致します。
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
賢人の皆様にご指導を賜りたく思い、書込みさせて頂きます。
質問は、1つのフォーム上にトランザクション用のDataSetとマスタ用のDataSetを設けているのですが、このような造りは、そもそもVB.NET上許されている仕様なのでしょうか。
トランザクション用のDataSetは、DBに対して読み書きがあります。
マスタ用のDataSetは、フォームロード時にDBから取込みを行なったあと、DBへのアクセスはしません。主にコンボボックスのデータとして使用してます。
DBへのアクセス負担を少しでも解消しようと考え、DataSetを別々としたのですが、そのためか色々と不具合が見られるようになってしまいました。
例えば、トランザクション用のDataSetにFillメソッドにてデータを取込んでも、バインドしている各テキストボックスにデータが表示されない等。
(一旦、マスタ用のDataSetをClearして、データを取込むと表示されます。)
ネット上を色々と探してみましたが、1つのフォームで複数のDataSetを使用しているサンプルも見当たらず、途方に暮れております。
もし、なんらかの情報をお持ちの方は、教えて頂けないでしょうか。
「そんな造りはおかしい」ということでも結構です。
つたない説明でわかり難いかもしれませんが、よろしくお願い致します。