- - PR -
データセット等のグローバル変数
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-31 15:17
vs2005 vb winxp
いつも拝見しております。 1つご教授願いたいところがあります。 今、グローバル変数、グローバル関数、マスタ等をすべてプロジェクトで分け、マスタのほうから参照し、データ接続だったり、データセットに値を入れたりとかをグローバル関数でやってあげようと思います。 そうすると、各画面単体単体は、正常に動作すると思うのですが、同時にマスタを何画面も開いたときに、データセットの値等が変わってしまうと思います。 そこで、グローバル変数、関数の参照をやめて、すべてのマスタごとのプロジェクトにグローバル変数、関数クラスを作成して使うか、今のままで、グローバル関数で得たデータセットを、各フォームで新しく宣言したデータセットにいれなおすかで、迷っています。 ************************************************************ Dim ××ますた_DataSet As New DataSet() call データセット受け取り処理 '別プロジェクトの関数 ××ますた_DataSet = グローバル_DataSet ××マスタ.DataSource = ××ますた_DataSet *********************************************************** みたいな感じです。 みなさまは、どのようにしてますでしょうか。初歩的な質問だとは思いますが、ご教授お願いいたします。 | ||||||||
|
投稿日時: 2006-07-31 16:13
戻り値で返しているとして、関数 (メソッド) は関係ないですよね。 問題となりえるのは、'グローバル変数' と仰っている部分でしょう。 これは、定義している場所とアクセスレベルが、非常にまずいということです。 'グローバル変数' と仰っているのは、Public な静的変数とほぼ同義だと考えられます。 各々で値が変わる仕様なのであれば、明らかにおかしい定義をしていることになりますよね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-07-31 16:37
みなさまは、(たぶん)グルーバル**という発想自身をあまりしないのだと思います。
これは、データの整合性が取れないという意味でしょうか? [ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-07-31 16:37 ] | ||||||||
|
投稿日時: 2006-07-31 17:47
R・田中一郎さん。じゃんぬねっとさんありがとうございます。
グローバルで、データセットを宣言しちゃうと、開いたマスタごとに、データセットが変わってしまうってことですね。 今まで、開ける画面は、1つと仮定してつくってましたので、グローバルのが楽かなとおもってそう作成していました。
そうですよね。値がかわるのは、グローバルにすべきではないですよね。 データセットはフォーム単位ですべきですよね。 データセットは、フォームで宣言し、データ抽出とかは、引数で関数に渡し、戻ってきた値をフォームに連結するということで、作成してみます。 ありがとうございました。 |
1