- PR -

ASP.NET でSharedを使用して変数を共有化する方法

1
投稿者投稿内容
未記入
会議室デビュー日: 2004/11/24
投稿数: 12
投稿日時: 2004-11-24 16:08
 OS:XP 開発言語:VB.NET
ASP.NET でShared変数について教えてほしいことがあります!!
Shared変数で定義しても、再ロードすると、データがクリアされてしまいます。
その原因が分からないので教えてください!!

やっていることはこんな感じのことです。

@Shared変数を定義する
Public Shared dvList As System.Data.DataView '一覧表示
Public Shared mlngCount As Long 'データ数
Public Shared mtypSchdule() As SchduleData 'ユーザコード

APage_LoadでMDBファイルから、ポストバックじゃない場合、データを取得して、
 取得件数をmlngCountに保持、取得情報をmtypSchdule()という構造体に保持します。

 ページが表示され、そのページでなんらかの処理(ボタンをクリック)を行って,
再度そのページがロードされると、データ数:mlngCount も mtypSchdule() も
 クリアされてしまいます。

 そのページ内での処理を行う間(ボタン等をクリックしても)、取得したデータを
 ずっと保持していたいのですが、何かいい方法はありますか??
 Shared変数の使用法が間違っているのでしょうか???

 未熟者ですいませんが、教えてください!!!!
  


たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2004-11-24 17:28
Sessionオブジェクトでやるのがカンタン。

Session("Message") = "MyMsg"

セッション状態
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconSessionState.asp


Visual Basic および Visual C# の概念
Web アプリケーションと Web サービスの作成
http://www.microsoft.com/japan/msdn/library/ja/Vbcon/html/vboriCreatingWebDistributedAppsVB.asp
Web フォームの状態管理
http://www.microsoft.com/japan/msdn/library/ja/Vbcon/html/vbconWebFormState.asp

_________________
たつごろー
codeseek
こみゅぷらす
未記入
会議室デビュー日: 2004/11/24
投稿数: 12
投稿日時: 2004-11-24 18:05
たつごろーさん。ありがとうございます!!
もう一つ質問なんですが・・。

session変数に構造体の変数は保管できるのでしょうか??
やはり、String型の1元配列の変数しかダメなのでしょうか??
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2004-11-24 18:46
オブジェクトなら何でも入ります。
CTypeで型を指定しないとまともに拾えません。

_________________
たつごろー
codeseek
こみゅぷらす
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-11-24 19:01
引用:

たつごろーさんの書き込み (2004-11-24 18:46) より:
オブジェクトなら何でも入ります。
CTypeで型を指定しないとまともに拾えません。





InProcだったらそうですね。

その他のモードを利用している時はシリアル化可能な型のみ可能です。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
未記入
会議室デビュー日: 2004/11/24
投稿数: 12
投稿日時: 2004-11-25 10:29
session変数でも構造体の変数も保管できるんですね!!
ありがとうございました☆

あと、もう1つ問題が発生しました。
session変数にデータの保管までは出来たのですが、
ポストバックすると、session変数の中身もクリアされてしまうのです・・・。

Dim typWork() As SchduleData
typWork = CType(Session("Schdule"), SchduleData())

※SchduleDataは構造体です。

あと、sessionと並行してCookie変数にも値を代入しています。
そのCokkie変数には、ちゃんと保管した値を取得することができます。

なぜかsession変数だけ、値を保管したのに、
ポストバックして、保管した値を取得するとNothigが返ってきてしまいます。
Cookie変数を並行して利用しているのがまずいのでしょうか・・。

すいませんが、教えてください。



 
Dim htpCooki As HttpCookie
Response.Cookies.Remove(strName) 'クッキーの内容初期化
htpCooki = New HttpCookie(strName, strData) 'クッキーにないよう登録
Response.Cookies.Add(htpCooki)








1

スキルアップ/キャリアアップ(JOB@IT)