連載ASP.NET 2.0が変えるWebアプリ開発の世界第4回 データアクセス・コントロールとクリッカブル・マップ山田 祥寛2004/12/04 |
|
Back Issue
|
||||||
|
前回に引き続き今回も、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においてデータアクセス・コントロールにデータソースをバインドする(データベースのデータを表形式で表示する)には、
- データソース(データベースやXML文書)への接続
- データセット(DataSetオブジェクト)へのデータの取得
- データセットとデータアクセス・コントロールの関連付け
といった定型的ではあるものの、開発者が何かしらのコードを記述する必要があった。しかし、定型的であるならばなおのこと、余計なコードはできるだけ記述したくないというのが人情だ。
そこで導入されたのが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コントロールの進化版ともいうべきコントロールで、
- ページングやソート処理を属性の指定だけで実現できる
- チェック・ボックスやドロップダウン・メニューなどを利用したカラムを生成可能である
|
などの特徴を持っており、これまで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アプリ開発の世界」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|