それではストアドプロシージャとASP.NETを連携させるアプリケーションを作成してみましょう。今回作成するサンプルは従業員の居眠り回数を表示し、ストアドプロシージャを使って更新するアプリケーションです。
Visual Studioを起動し、メニューの[ファイル]→[新しいWebサイト]を選択すると[新しいWebサイト]ダイアログが表示されます。IISがセットアップされていない環境でも動作可能とするため、[場所]から[ファイルシステム]を選択します(図18)。
前回と同様、作成したWebサイトにOracle.DataAccessの参照設定を追加します。今回作成するWebサイトに、前回作成したDataAccessクラスを追加します。前回と同様、ソリューションエクスプローラよりWebサイトを右クリックし[ASP.NETフォルダの追加]→[App_Code]と選択します。作成されたApp_Codeフォルダを右クリックし、[既存項目の追加]より、前回作成したDataAccess.vb(またはDataAccess.cs)ファイルを追加します。
追加したDataAccessクラスに、EMP表とDOZE表をJOINして社員情報と居眠り回数を取得するGetDozeDataメソッドを追加します(リスト3)。
Public Function GetDozeData() As DataSet
|
リスト3 EMP表とDOZE表をJOINして社員情報と居眠り回数を取得(VB.NET) (C#のコードを表示する) |
この時点で一度Webサイトをビルドします(方法と理由は前回を参照)。
次にWebページにGridViewを追加しIDをDozeGridViewに変更します。DozeGridViewにObjectDataSourceを追加し、SELECTメソッドにはGetDozeDataを設定します。GridViewやObjectDataSourceの追加方法については前回の記事をご覧ください(図19)。
Webブラウザを開き、正常にEMP表とDOZE表からデータが取得できていることを確認します(図20)。
Webページにストアドプロシージャの呼び出しを追加します。DozeGridViewの右上にある三角マークをクリックし、表示されるGridViewタスクから[新しい列の追加]をクリックします(図21)。
[フィールドの追加]ダイアログが表示されますので、「フィールド型」を「ButtonField」、「ボタンの種類をButton」、テキストに「報告」と入力して[OK]を押下します。コマンド名は本来不要ですが、Cancelのままとしておきます(図22)。
DataAccessクラスにストアドプロシージャ呼び出しのメソッドを追加します(リスト4)。
Public Sub RegistDoze(ByVal prmId As Int32) |
リスト4 ストアドプロシージャ呼び出しメソッド(VB.NET) (C#のコードを表示する) |
Webページのボタンが押下された際に、リスト4で追加したメソッドを呼び出すコードを記述します。Default.aspxの上部コンボボックスよりDozeGridViewのRowCommandイベントを選択し(図23)、リスト5のコードを記述します。
Protected Sub DozeGridView_RowCommand( _ |
リスト5 ボタン押下イベント時にストアドプロシージャを呼び出す(VB.NET) (C#のコードを表示する) |
Webサイトをビルド、デバッグ実行しエラーが発生しないことを確認します(図24)。
実行後、Dozeテーブルのデータを参照し、正常に登録されていることを確認します(図25)。
Copyright © ITmedia, Inc. All Rights Reserved.