|
.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」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




