連載

ASP.NET 2.0が変えるWebアプリ開発の世界

第4回 データアクセス・コントロールとクリッカブル・マップ

山田 祥寛
2004/12/04
Page1 Page2 Page3 Page4


Back Issue
1
周辺技術が支えるASP.NET 2.0の進化
2
ASP.NET 2.0のマスター・ページとサイトマップ
3
ASP.NET 2.0のログイン管理とウィザード・ページ

 前回に引き続き今回も、ASP.NET 2.0で追加/機能強化されたサーバ・コントロールについて解説を続ける。今回は、ASP.NET 2.0で大幅に強化されたデータアクセス・コントロールや、ASP.NETアプリケーション上でクリッカブル・マップを実現するImageMapコントロールに焦点を当ててみよう。

●プログラムレスの理念を強化した「データアクセス・コントロール」

 ASP.NET 1.xには注目すべきサーバ・コントロールが数あまた存在するが、その中でも代表的なコントロールがDataGridやDataListなどに代表されるデータアクセス・コントロールだ。

 例えば、DataGridコントロールを利用することで、データベースなどから取り出したデータセットを非常に少ないコーディングで表形式に整形できる。データアクセス・コントロールに関する詳細については、「TIPS:DataGridコントロールでデータセットを表示するには?」をはじめ、.NET TIPSでもさまざまな活用例を紹介しているので、興味のある方はぜひ参照していただきたい。

 しかし、データアクセス・コントロールは強い注目と人気を集めたがゆえに、多くの非難や要望にもさらされたコントロールでもある。「より少ないコード」で「より多くの機能」を実現したいというASP.NETアプリケーション開発者の要望は、もっぱらデータアクセス・コントロールに集中することになったのだ。以下では、これらどん欲な開発者のニーズに対する解として、ASP.NET 2.0がどのようなものになったのかを見ていくことにしよう。

○DataSet/DataReaderを代替するDataSourceコントロール

 ASP.NET 2.0で新たに提供されたデータアクセス・コントロールについて紹介する前に、まずは「DataSourceコントロール」について触れておく必要がある。

 DataSourceコントロールとは、簡単にいうならば、従来のDataSetやDataReaderのようなオブジェクトを代替するコントロールだ。「TIPS: DataGridコントロールでデータセットを表示するには?」でも示しているように、ASP.NET 1.xにおいてデータアクセス・コントロールにデータソースをバインドする(データベースのデータを表形式で表示する)には、

  1. データソース(データベースやXML文書)への接続
  2. データセット(DataSetオブジェクト)へのデータの取得
  3. データセットとデータアクセス・コントロールの関連付け

といった定型的ではあるものの、開発者が何かしらのコードを記述する必要があった。しかし、定型的であるならばなおのこと、余計なコードはできるだけ記述したくないというのが人情だ。

 そこで導入されたのがDataSourceコントロールなのである。DataSourceコントロールは、データソースとデータアクセス・コントロールとの間を仲介して、接続やコマンドの管理を行うためのコントロールだ。

データアクセス・コントロールとDataSourceコントロール
DataSourceコントロールは、データソースとデータアクセス・コントロールとの間を仲介して、接続やコマンドの管理を行う。

 DataSourceコントロールにはデータソースの種類によってさまざまなコントロールが含まれている(第2回の表「ASP.NET 2.0で追加された主なサーバ・コントロール」を併せて参照いただきたい)。

 いまさらのようにAccessデータベース(Microsoft Jetデータベースである「.mdb」ファイル)に対応したAccessDataSourceのようなコントロールが登場しているが、これは、ASP.NETを採用する個人ユーザーの中には、Accessデータベースを手軽なデータ・ストア手段として利用している人が多くいるということかもしれない。もちろん、本格的なWebアプリケーションのバックエンド・データベースとしては、AccessデータベースよりもSQL ServerなどのDBMSの採用をお勧めする。

○DataSourceコントロールとデータアクセス・コントロールの例

 さて、それでは実際にDataSourceコントロールを利用して、データアクセス・コントロールにデータをバインドしてみよう。データアクセス・コントロールとしては、ASP.NET 2.0で新しく導入された「GridViewコントロール」を採用する。

 GridViewコントロールは、DataGridコントロールの進化版ともいうべきコントロールで、

  • ページングやソート処理を属性の指定だけで実現できる
  • チェック・ボックスやドロップダウン・メニューなどを利用したカラムを生成可能である
DataGridコントロールでページ表示するには?
DataGridコントロールにソート機能を追加するには?
DataGridコントロール内のドロップダウンリストに動的に項目を追加するには?

などの特徴を持っており、これまでASP.NET 1.xのDataGridコントロールでは必要とされた煩雑なコーディングがほとんど不要になっている。

 もちろんASP.NET 2.0でもDataGridコントロールは利用可能であるが、こちらはあくまでASP.NET 1.xとの下位互換を保つために残されたもので、今後は特別な理由がない限り、GridViewコントロールを優先して採用することを強くお勧めしたい。

 GridViewコントロールを利用した簡単なグリッド表のサンプル・プログラムを作成する。それに当たっては、あらかじめSQL Server上に以下のようなフィールド・レイアウトを持つ「books」テーブルが作成されているものとする。

フィールド名 データ型 概要
isbn VARCHAR(20) ISBNコード(主キー)
title VARCHAR(100) 書名
publish VARCHAR(50) 出版社名
price INT 価格
cdrom BIT CD-ROM添付か
booksテーブルのフィールド・レイアウト
本サンプルを作成するに当たっては、あらかじめSQL Server上にこのようなフィールド・レイアウトを持つbooksテーブルを作成しておく必要がある。

 それでは、グリッド表を作成してみよう。


 INDEX
  ASP.NET 2.0が変えるWebアプリ開発の世界
  第4回 データアクセス・コントロールとクリッカブル・マップ
  1.DataSourceコントロールとデータアクセス・コントロール
    2.GridViewコントロールを使ったデータアクセスの例
    3.レコードの明細情報を出力する「DetailsViewコントロール」
    4.ImageMapコントロールによるクリッカブル・マップの実現
 
インデックス・ページヘ  「ASP.NET 2.0が変えるWebアプリ開発の世界」


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 記事ランキング

本日 月間