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

第6回 データソース・コントロールでいってみよう(前編)

山田 祥寛(http://www.wings.msn.to/
2006/07/29
Page1 Page2 Page3

[2].aspxファイルをレイアウトする

 次に、データアクセス・コンポーネントの処理結果を表示するためのWebフォーム(ObjectDataSource.aspx)を作成します。新規に「.aspx」ファイルを作成したら、次の図3の要領でGridViewコントロールをフォーム・デザイナ上に配置します。


図3 ObjectDataSource.aspxのフォーム・デザイン
  DropDownListコントロール(IDは「list」)を配置。
  GridViewコントロール(IDは「grid」)を配置。

 DropDownListコントロールのItemsプロパティにはデフォルト値として、以下の表2のListItemオブジェクトを追加しておきます。また、AutoPostBackおよびAppendDataBoundItemsプロパティをTrueに設定しておきます。

 AppendDataBoundItemsプロパティは、あらかじめ宣言されたItemsプロパティの内容をそのままデータバインド項目として追加するかどうかを指定します。Falseに設定した場合、データバインドのタイミングでItemsプロパティの元の内容は削除されてしまいますので注意してください。

プロパティ 概要
Selected True
Text 選択してください
Value -
表2 追加するListItemオブジェクトのプロパティ設定

 DropDownListコントロールに出版社情報をデータバインドする方法については、第3回の「[1]DropDownListコントロールを追加する」ですでに紹介していますので、そちらを参考にしてください。

 GridViewコントロールの設定を行うには、これまでと同様、[GridView タスク]メニューの[データ ソースの選択]から「<新しいデータ ソース>」を選択します。[データソース構成ウィザード]が表示されますので、以下の要領で必要な項目を入力していきます。

 まず、ObjectDataSourceコントロールを使用する場合には「アプリケーションがデータを取得する場所」の選択で「オブジェクト」を選択してください。また、データソースの名前(ID)として、ここでは「ods」を設定しておきます。


図4 データソース構成ウィザード - データソースの選択
データソースの種類(アプリケーションがデータを取得する場所)として「オブジェクト」を選択する。

 [ビジネス オブジェクトの選択]ダイアログでは、データの取得/操作のために使用するクラス(ここでは先ほどリスト1で作成したBook.vbのBookクラス)をプルダウン・メニューから選択します。


図5 データソース構成ウィザード - ビジネス・オブジェクトの選択
リスト1で作成した、データの取得/操作のためのBookクラスをプルダウン・メニューから選択する。

 [データ メソッドの定義]ダイアログが表示されたら、[SELECT]タブに「getBookDataSet(String publish)、戻り値 DbDataReader」がセットされていることを確認してください。ほかに[UPDATE][INSERT][DELETE]タブもありますが、ここではこれらのタブはブランクにしておきます。


図5 データソース構成ウィザード - データ・メソッドの定義
[SELECT]タブで「getBookDataSet(……)、戻り値 DbDataReader」がセットされていることを確認する。

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


図6 データソース構成ウィザード - パラメータの定義
SELECTメソッド(BookクラスのgetBookDataSetメソッド)にDropDownListコントロール(list)での選択値(SelectedValueプロパティ)が渡されるようにする。

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

 以上で、ObjectDataSourceコントロールを用いたGridViewコントロールの作成は完了です。ツール・バーから[デバッグ開始]ボタンをクリックし、booksテーブルから取得した内容がGridViewコントロール上に表示されれば成功です。プルダウン・メニューを変更し、グリッド内の情報が絞り込みされることを確認してください*4

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

[コラム]DataObjectMethod属性

 DataObjectMethod属性は、データアクセス・コンポーネント内のメソッドについて、メソッドが実行する操作の種類や、デフォルトのデータ・メソッドであるかどうかを指定します。例えば、リスト1のコードでは、

<DataObjectMethod(DataObjectMethodType.Select, True)>

のように指定されていますので、対応するメソッド(getBooksDataReaderメソッド)がSELECT用のデフォルトのメソッドであることを表します。DataObjectMethod属性は必ずしも必須ではありませんが、これを明示的に指定することで、データソース構成ウィザードでも該当のメソッドが自動的に認識されるようになります。


 INDEX
  Visual Studio 2005でいってみようDBプログラミング
  第6回 データソース・コントロールでいってみよう(前編)
    1.データアクセス・コンポーネントを作成する
  2.ObjectDataSourceコントロールを設定する
    3.ObjectDataSourceコントロールに削除機能を実装する
 
インデックス・ページヘ  「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 記事ランキング

本日 月間