.NET TIPS [ASP.NET]ストアド・プロシージャの戻り値をASP.NETページに反映させるには?[2.0、3.0、3.5、C#、VB]山田 祥寛2009/04/23 |
|
|
「TIPS:[ASP.NET]ストアド・プロシージャの出力パラメータをASP.NETページに反映させるには?」で紹介したように、ストアド・プロシージャではその処理結果を出力パラメータとして呼び出し元に返すことができる。しかし、呼び出し元に返したい値が1つで、かつ、それが整数型(INT値)である場合には、(出力パラメータではなく)戻り値を利用することも可能だ。
本稿では、前述のTIPSのサンプルを、戻り値を使った例で書き換えてみよう。
1. ストアド・プロシージャを修正する
前述のTIPSで定義済みのストアド・プロシージャSelectProcに対して、以下の要領でコードを修正する。
|
|
SelectProcストアド・プロシージャのコード |
戻り値を返すのは、RETURN命令の役割だ。ここでは、前述のTIPS同様、システム関数@@ROWCOUNTで直近のSQL命令による取得件数を戻り値として返している。
2. データソース・コントロールのパラメータを修正する
ストアド・プロシージャからの戻り値を受け取るには、出力パラメータのときと同様、データソース・コントロール(SqlDataSourceコントロール)にも明示的にパラメータ定義を追加しておく必要がある。
ただし、戻り値パラメータは(なぜか)データソース構成ウィザードからでは自動では認識できないようで、手動での設定が必要だ。これにはまず、プロパティ・ウィンドウからSelectQueryプロパティを選択し、右端の[...]ボタンをクリックする。
[コマンドおよびパラメータのエディタ]ダイアログ |
[コマンドおよびパラメータのエディタ]ダイアログが起動するので、ここで[パラメータを最新の情報に更新する]ボタンをクリックする。すると、新たに「RETURN_VALUE」という名前のパラメータが追加されることが確認できるはずだ。これが戻り値を受け取るためのパラメータである。なお、不要になった出力パラメータ「result」は自動では削除されないので、[パラメータ]欄で削除しておこう。
次に、[詳細設定パラメータの表示]リンクをクリックし、プロパティ・グリッドを表示する。Directionプロパティが「ReturnValue」、Typeプロパティが「Int32」になっていれば、RETURN_VALUEパラメータは確かに戻り値パラメータとして認識されている。
3. 戻り値パラメータの値を取得する
あとは、ストアド・プロシージャから取得した戻り値をLiteralコントロールに反映させるだけだ。前述のTIPSで定義済みのSelectedイベント・ハンドラを以下リストの要領で書き換えてほしい(書き換え部分は太字)。
|
||
戻り値パラメータを取得するためのイベント・ハンドラ(Stored_cs.aspx。上がC#、下がVisual Basic) |
取得するパラメータの名前を、戻り値パラメータを表す「@RETURN_VALUE」に変更するだけだ。これによってストアド・プロシージャから返された戻り値を取得し、その値をLiteralコントロールに反映している。
以上を理解できたら、修正したStored.aspxを実行してみよう。
修正したStored.aspxの実行結果 |
ストアド・プロシージャからの戻り値(条件に合致したレコード数)が正しくLiteralコントロールに表示されている。 |
上の画面のように、グリッド表に表示されたレコード件数がLiteralコントロール上にも反映されていれば、戻り値パラメータは正しく取得できている。
利用可能バージョン:.NET Framework 2.0 利用可能バージョン:.NET Framework 3.0 利用可能バージョン:.NET Framework 3.5 カテゴリ:Webフォーム 処理対象:GridViewコントロール 使用ライブラリ:GridViewコントロール 関連TIPS:TIPS:[ASP.NET]ストアド・プロシージャの出力パラメータをASP.NETページに反映させるには? |
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|