- ベストアンサー
web developerのデータ保持について
Visual Studio 2010でWebアプリケーションを作成しているのですが、データテーブルからのデータを代入した変数のデータを保持する仕方が分かりません。 アプリケーション変数かセッション変数を使えば、datatableのデータ保持ができそうだと思ったのですが、使い方がいまいち分かりません。 どなたか詳しい方おられましたら、回答のほどよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
自分が実装するなら、 最初のボタンクリック時に選択された「日付のデータ」のみをViewStateを使って保存。 2回目のボタンクリック時は、ViewStateから取り出した日付のデータからseries1のデータを作成、 また、このタイミングで選択されている日付からseries2のデータを作成。 で、series1、2のデータからグラフを作成。 こんな感じにするかなぁ。 最初のデータそのものを保持しておく必要はないと思いますので。 一般的にはセッションを使うとこでしょうけど、同じページ内での操作なのでViewStateを使っても いいと思います。
その他の回答 (2)
- todo36
- ベストアンサー率58% (728/1234)
ViewStateオブジェクト Sessionオブジェクト クッキー クエリ文字列 Cacheオブジェクト データベース 静的変数 状況によって使い分ける。 http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp03/entwebapp03_01.html
お礼
todo36さん。 回答してくださり、ありがとうございます。 todo36さんのおっしゃるとおり、状況によって使い分けられるようにもう少し調べようと思います。 参照URLまで載せていただき丁寧な回答に感謝いたします。
- onos
- ベストアンサー率81% (127/155)
えと、Webアプリの場合、できるだけサーバ上に値を持たないのが基本です。 どうしても必要な最小限のデータを持つようにしましょう。 という前提のうえで。 アプリケーション変数はWebアプリ全体で保持する変数です。 Webアプリは複数の人が同時に利用しますから、利用する人すべてに同じ値が見えることになります。 セッション変数はセッションという単位で保持されます。 通常は利用する人毎、と考えてよいですが、セッションを維持するにはサーバ側の設定とブラウザ側の設定(一般的にはクッキーを利用)があるので、このあたりの設定によって変わることがありえます。 データベースから取得したデータを保持したい、とのことですが、アクセスの都度データベースからデータを持ってくる、というのも一つの方法として考えていいと思います。
補足
onosさん。 回答していただきありがとうございます。 動作としては、 (1)カレンダーから日付を選びButton1を押すことでデータベースからその日付のデータを取り込み、それをソースとしてグラフ1を生成する。(series1) (2)そして新たにまたカレンダーから日付を選びButton1を押すことで、データベースから先ほどとは異なる日付データ(x軸、y軸は同じ)を取ってきて、それをグラフ1にseries2として追加し、比較を行う。 ということを行いたいと思っています。 今は(1)までは出来ていて、(2)はseries2は追加できるのですが、series1,2の両方とも後から追加したデータのグラフになり、比較することができません。 onosさんが書き込んでくださった >アクセスの都度データベースからデータを持ってくる という方法で上記のことは行うことができるでしょうか? また、上記のことを行うにはアプリケーション変数やセッション変数ではなく別のものを使うのではないかと、調べているうちに思ったのですが、この辺りもどうなのか教えていただければと思います。 色々書いてしまいましたが、よろしくお願いいたします。
お礼
onosさん。 度々の回答に感謝いたします。 todo36さんも挙げておられたViewStateで、onosさんの説明を参考にさせていただきながら、やってみようと思います。 毎回の丁寧で分かりやすいご回答本当にありがとうございます。 また分からないところがあれば質問させていただくと思いますが、その時はよろしくお願いいたします。