連載:VS 2005でいってみようDBプログラミング

第8回 Let's Master ストアド・プロシージャ!(前編)

山田 祥寛(http://www.wings.msn.to/
2006/09/30
Page1 Page2 Page3 Page4

[2]サーバ・コントロールを配置する

 ストアド・プロシージャ単体の動作が確認できたところで、次にASP.NETからストアド・プロシージャを呼び出す方法について見ていくことにしましょう。

 まずは、新規に作成したWebフォーム「sp.aspx」に図6の要領で、DropDownList、GridView、Literalの3つのサーバ・コントロールを配置します。


図6 sp.aspxのフォーム・レイアウト
DropDownList、GridView、Literalの3つのサーバ・コントロールを配置する。

 そしてそれぞれのプロパティを表3のように設定します。

コントロール プロパティ名 設定値
DropDownList (ID) list
AppendDataBoundItems TRUE
AutoPostBack TRUE
Items Selected:True/Text:選択してください/Value:0
GridView (ID) grid
AllowPaging TRUE
AllowSorting TRUE
Literal (ID) result
Text △(ブランク)
表3 配置したサーバ・コントロールのプロパティ一覧

 DropDownListコントロールのAppendDataBoundItemsプロパティは、既存のItemsプロパティに追加する形でリストにデータをバインドするかどうかを表します。本プロパティがFalseである場合、Itemsプロパティであらかじめ設定された内容はデータバインドのタイミングでクリアされてしまいますので注意してください。

 Literalコントロールは、後からレコードの取得件数を表示するために使用します。この項ではまだ使用しませんので、いまは無視してください。

[3]DropDownListコントロールにデータをバインドする

 次に、DropDownListコントロールに対してデータをバインドします。DropDownListコントロールにデータをバインドする方法については、すでに第3回でも紹介していますので、ここではデータソース構成ウィザードの設定項目についてのみまとめておくことにします。詳細は該当の回を参照してください。

項目 設定値
データの種類 データベース
データソースID list_sds
データ接続の選択 MyDB
Selectステートメントの構成(テーブル) Publish
Selectステートメントの構成(列) publish_id、nameをチェック
DropDownListで表示するデータフィールドの選択 name
DropDownListの値のデータフィールドの選択 publish_id
表4 データソース構成ウィザードの設定項目(DropDownListコントロール)
データ接続先である「MyDB」は、第2回で設定した接続文字列の名前です。接続文字列に関する詳細、設定方法については、第2回の説明を参照してください。

 [Selectステートメントの構成]ダイアログでは、最終的に、

SELECT [publish_id], [name] FROM [publish]

のSQL命令が生成されていればOKです。

[4]GridViewコントロールにデータをバインドする

 最後に、GridViewコントロールに対してデータをバインドします。

 データ構成ウィザードの前半の設定については、特にこれまでと変わるところはありません。表5の要領で必要な情報を入力していきましょう。

項目 設定値
データの種類 データベース
データソースID proc_sds
データ接続の選択 MyDB
表5 データソース構成ウィザードの設定項目(GridViewコントロール)

 ストアド・プロシージャを利用する場合に注目すべき点は、以降、[Selectステートメントの構成]ダイアログからです。ここからはやや詳しく手順を眺めていきます。



「カスタムSQLステートメントまたはストアドプロシージャを指定する」を選択



[SELECT]タブで「ストアドプロシージャ」を選択し「SelectProc」を指定

図7 ストアド・プロシージャを利用する場合の設定
  [Selectステートメントの構成]ダイアログ
  [カスタムステートメント またはストアドプロシージャを定義します。]ダイアログ
  [パラメータの定義]ダイアログ

 これまでのサンプルでは[Selectステートメントの構成]ダイアログ で「テーブルまたはビューから列を指定します」を選択していたわけですが、ストアド・プロシージャを使用する場合には、「カスタムSQLステートメントまたはストアドプロシージャを指定する」を選択し、[次へ]ボタンをクリックします。

 [カスタムステートメントまたはストアドプロシージャを定義します]ダイアログ が表示されますので、[SELECT]タブから「ストアドプロシージャ」を選択し、使用するプロシージャ名として[1]で作成した「SelectProc」を指定します。もちろん、挿入/更新/削除処理が必要である場合には、[UPDATE][INSERT][DELETE]タブも指定できますが、ここではこれらのタブはブランクにしておきます。

 [次へ]ボタンをクリックすると、[パラメータの定義]ダイアログが開きますので、図7の要領で絞り込み条件を指定してください。これでpublish_id列がDropDownListコントロール(list)の選択値(SelectedValueプロパティ)と等しいデータだけが抽出されることになります。

 一連の作業の後、[完了]ボタンをクリックすると、GridViewコントロールの下にSqlDataSourceコントロールが配置され、GridViewコントロールにもデータソースの内容がバインドされていることが確認できるはずです。

 以上で、ストアド・プロシージャによる実行結果をGridViewコントロールに関連付ける作業は完了です。ツール・バーから[デバッグ開始]ボタンをクリックし、Bookテーブルから取得した内容がGridViewコントロール上に表示されれば成功です。プルダウン・メニューを変更し、グリッド内の情報が絞り込みされることを確認してください*2

*2 グリッド上のレイアウト設定については、第3回でも紹介したとおりですので、本稿では割愛します。なお、現時点ではデータアクセス・コンポーネントに更新/削除メソッドを定義していませんので、グリッド上からも更新/削除機能を利用することはできません。


 INDEX
  Visual Studio 2005でいってみようDBプログラミング
  第8回 Let's Master ストアド・プロシージャ!(前編)
    1.ストアド・プロシージャ基本のキ(1)
  2.ストアド・プロシージャ基本のキ(2)
    3.ストアドに条件分岐を追加する/ストアドから出力パラメータを取得する
    4.ストアド・プロシージャから戻り値を取得する
 
インデックス・ページヘ  「Visual Studio 2005でいってみようDBプログラミング」


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間