• 締切済み

ASP.NET

お世話になります。ASP.NET初心者です。 つい、一週間ほど前から、ASP.NETでのシステム開発をしているのですが、わからない点があり質問させて頂きました。 環境 ASP.NET(今は、ローカルのIISを使用しています。)    DB Oracle10g 質問内容:画面上で入力された値をキーとしてDBから値を取得し、 画面に表示するのですが、その取得してきたデータのKey値をどこかに保存しておいて、更新(UPDATE)するときに使用したいと思うのですが、どのような方法があるのでしょうか?画面の隠しコントロールなどに退避したりするのでしょうか? 以上 よろしくお願いします。  

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.4

> Privateの変数に保持すればいいかと思ったのですが プロパティにして、ViewStateで値を保持するのがお勧めです。 public int myKey { get{ return (int)ViewState["myKey"]; } set{ ViewState["myKey"] = value; }

参考URL:
http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp03/entwebapp03_02.html
  • eyesea
  • ベストアンサー率27% (15/55)
回答No.3

> DBから取得してきたデータをPrivateの変数に保持 とのことですが、同じプログラム内で更新していますか? 通常は別のASPプログラムでDBのUpdateを行なうと思うのですが、そうした場合は当然のことながら変数はクリアされます。(別のプログラムですから) redfox63さんがおっしゃっているようにWebは「要求~送信」の1セットで一旦完了してしまうので、プログラム内の変数に入れておくこと自体が無意味になります。 一番手っ取り早いのがセッション変数なので、解説本などで調べてみてください。 あくまでもセッションが切れるまでなので、ブラウザを閉じたり長時間放置しておくとリセットされてしまいますが・・・。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

遷移間の時間が短くてすむのであればセッションでやる方が多いと思います 自分自身(Page)の中で覚えておきたいなら隠しコントロール(HiddenField)のVisibleプロパティをFalseに設定しておいてこのValueプロパティに設定すると言った手法もあります Webアプリはページを要求されて構築し送信が終わった時点で破棄されますのでグローバル変数をページクラスなどに作成してここにデータを保存しても意味がありません

  • eyesea
  • ベストアンサー率27% (15/55)
回答No.1

質問の状況が今ひとつわからないのですが・・・。 「取得してきたデータのKey値」というのは、「画面上で入力された値」のことですか? だとすると、「更新(UPDATE)するときに使用したい」というのは、「入力された画面とは違う画面に遷移しても使用できるように保持したい」という意味でしょうか? 上記2点が合っているのなら、Session変数を利用すればよいと思います。 Session変数は、セッションが切断されなければ保持されますので、画面を遷移しても値がキープされます。 ※私は少し古いASPをいじっていてASP.NETは触ったことが無いので、もしかすると今はもっと良い方法があるのかもしれません。

h-japon
質問者

お礼

回答ありがとうございます。 取得してきたKey値というのはDBから取得してきた値なのですが、 画面上には表示していない項目です。なので、DBから取得してきたデータをPrivateの変数に保持すればいいかと思ったのですが、 更新をしようとしたときにはなぜか変数が初期化されてしまっていて・・・Web系の開発自体がはじめてなのでつかぬ質問ですみません。

関連するQ&A

  • ASP.NETにてWebアプリ開発

    お世話になります。 VS2005のASP.NET2にてwebアプリを開発する予定です。 --環境-- ・Windows2000サーバー ・Oracle8.1.7 ・IIS5.0 --開発ツール-- VS2005 VB.NETを使用 oracle8.1.7でADO.NETの接続は可能でしょうか? 幼稚な質問申し訳ありませんが宜しくお願い致します。

  • ASPとASP.netの連携について

    ASPで作られたシステムとASP.netで作るシステムの 連携について、ASP初心者で困っています。ご教授ください。 (1)ASPからASP.netの画面遷移はできますか? 可能ならば、どのようにすればできますか? (2)ASPとASP.netではセッションの共有はできない (オーバーヘッドがしやすい等問題があるためしない方がいい)と  いうのを知りました。  画面遷移時に、パラメータを渡したいのですが、  DBに格納という方法以外に、たとえば、  JSPのsubmitで値を飛ばすように、ASPで飛ばしたものを  ASP.netでgetするようなことはできますか? よろしくお願いします。 環境は、OSがWin2000、WEBサーバがIISです。

  • ASP.NETを始めたい

    こんばんは。 独学でASP.NETを始めたいと思っています。 調べたのですが開発環境自体が、バージョンアップされており 2003・2005、そして最近は2008が出たと聞いています。 仮に「2003」の環境を使用して学習する場合、 メリットは少ないのでしょうか?。 ポストバックなど根幹は変わらないと思いますが、コントロールや DB接続などアーキが多く変わっているようなら 2003では厳しそうですよね。 実は「2003」のMSのテキストなどが入手できまして、ここから 始めようと思ったのですが・・ ※IISはXPに追加しました ご経験者様のご意見を頂ければ幸いです。

  • ASP.NETのパフォーマンス要因

    マスター検索画面でグレープシティのスプレッドを使用しています。 DBの取得は一瞬ですが、どうにもアプリケーションとしての速度が遅いです。ASPでパフォーマンスを上げるにはどうしたらよいでしょうか? IIS6.0でIEを使用しております。

  • ASPのテスト開発環境について

    今以下のローカル環境でASPの開発テストを 行ってからアップロードしたいのですが、可 能でしょうか?また、テスト方法を教えてく ださい。お願いいたします。 WindowsXP Professional 使用DB Access97MDB 開発は .Netではありません。 コントロールパネルのODBCは設定いたしました。 IISでの設定とかは必要ないのでしょうか? C:\ASP_Test\index.asp などのファイルをローカルに置きました。 (index.aspはAccessMDBにアクセスして   情報表示するだけです。) 起動方法は http://localhost/ASP_Test/index.asp で起動しないのですが、何か設定で必要なのでしょうか? また起動方法に誤りがあるのでしょうか? 宜しくお願いいたします。

  • ASPとASP.NETとASP.NET2.0の違い

    Web開発初心者です。 帳票をPDF表示するWebアプリケーションを開発することになり、 言語はASPを使用することになりました。 そこで ASP ASP.NET ASP.NET2.0 の違いをご存知の方がいらっしゃいましたら教えていただけますでしょうか。 それぞれIIS以外に必要な実行環境、ツール等も教えていただけると助かります。 不明瞭な箇所がありましたら説明させていただきます。 すいませんがよろしくお願いします。

  • ASP.NETが動かない

    ASP.NETでWEBページを開発し、本番環境に載せたのですが、ASP.NETがまったく動いていません。IISも.NETFrameworkも入っているので原因がわかりません。

  • ASP.NETのコンパイルの方法

    VisualStadio2010 (.netFramework4.0) ASP.NET +C# Windows7(64bit) IIS7(ローカルのIISで開発。VSのIISは未使用) で開発しています。 実行環境はWindows2008+IIS7です。 VS2010でASP.NET +C# のソースを「Webサイトのコンパイル」(IISはローカールにインストールしたサーバ) ↓ 実行環境のWindos2008のIISのwwwrootにソースをコピー ↓ Webサイトの追加 ↓ URLにアクセスしてWebアプリケーションは使用できます。 ここで「Webサイトのコンパイル」しているのにアプリケーションはデバックモードで動いています。 APP_CODEのソースもテキストで丸見えです。 客先等にASPのWebアプリケーションを収める際、最終どのようにしていますか? よろしくお願いします。 今回VSのIISは使いません。(64BITのIISで動作する必要があるため)

  • textboxとLabelを動的に変更する

    VB.netとaspで開発しています。 VB.netでDBからデータを取得して、画面に値を表示する際に 値が入っていたらLabelコントロールで値を表示し、入っていなかったらtextboxコントロールを表示させたいのですが、やり方がわかりません。 ご存知の方、よろしくお願いします。

  • IISをASP.NET用に構成できない

    VisualStudioにてC#/ASPでWebアプリを開発しています。 アプリを VisualStudio開発サーバーでなく IISで起動しようとすると、以下のエラーメッセージが出ます。 「このサイトが正しく動作するためには、 このサイトを手動でASP.NET4.0用に構成する必要があります。 ASP.NET4.0はWebサーバーに登録されていません。 このサイトが正しく動作するためには、ASP.NET4.0用に Webサーバーを手動で構成する必要があります。」 IISのインストールで 「IISメタベースおよびIIS6構成との互換性」のチェックと アプリケーション開発機能の「ASP」と「ASP.NET」のチェックは いれています。 原因と対策をご教授ください。

専門家に質問してみよう