- - PR -
ASP.NET でSharedを使用して変数を共有化する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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-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 18:05
たつごろーさん。ありがとうございます!!
もう一つ質問なんですが・・。 session変数に構造体の変数は保管できるのでしょうか?? やはり、String型の1元配列の変数しかダメなのでしょうか?? | ||||
|
投稿日時: 2004-11-24 18:46
オブジェクトなら何でも入ります。
CTypeで型を指定しないとまともに拾えません。 _________________ たつごろー codeseek こみゅぷらす | ||||
|
投稿日時: 2004-11-24 19:01
InProcだったらそうですね。 その他のモードを利用している時はシリアル化可能な型のみ可能です。 _________________ 「伝える」とは「人に云う」と書く。 http://d.hatena.ne.jp/NAL-6295/ | ||||
|
投稿日時: 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