データ ソース コントロールの概要

更新 : 2007 年 11 月

ASP.NET には、データベース、XML ファイル、中間層ビジネス オブジェクトなどの各種のデータ ソースで使用できるデータ ソース コントロールがあります。データ ソース コントロールを使用すると、コードを記述せずにデータ ソースとデータをやり取りして他のコントロールに連結できます。また、データの変更もサポートします。

このトピックでは、ASP.NET に含まれる各種のデータ ソース コントロールについて説明します。データ ソース コントロールは拡張性を備えているので、さまざまなデータ ソースと対話したり、既存のデータ ソースに追加の機能を提供したりする独自のデータ ソース コントロールを作成することもできます。

データ ソース コントロールの比較

.NET Framework には、各種のデータ バインディング シナリオをサポートするためのデータ ソース コントロールがあります。次の表に、組み込みのデータ ソース コントロールを示します。データ ソース コントロールの各タイプの詳細については、その後で説明します。

データ ソース コントロール

説明

LinqDataSource

ASP.NET Web ページで宣言マークアップを通じて統合言語クエリ (LINQ) を使用し、データ オブジェクトのデータを取得したり変更できるようにします。選択、更新、挿入、および削除の各コマンドの自動生成をサポートします。また、並べ替え、フィルタ処理、およびページングの機能もサポートしています。

EntityDataSource

Entity Data Model (EDM) に基づくデータへのバインドを可能にします。更新、挿入、削除、および選択の各コマンドの自動生成をサポートします。また、並べ替え、フィルタ処理、およびページングの機能もサポートしています。

ObjectDataSource

ビジネス オブジェクトまたはその他のクラスと共に使用し、中間層オブジェクトに依存する Web アプリケーションを作成してデータを管理します。他のデータ ソース コントロールでは使用できない高度な並べ替えおよびページング機能をサポートします。

SqlDataSource

Microsoft SQL Server、OLE DB、ODBC、または Oracle データベースで使用できます。SQL Server で使用する場合は、高度なキャッシュ機能をサポートします。データが DataSet オブジェクトとして返される場合は、並べ替え、フィルタ処理、およびページングもサポートします。

AccessDataSource

Microsoft Access データベースで使用できます。データが DataSet オブジェクトとして返される場合は、並べ替え、フィルタ処理、およびページングもサポートします。

XmlDataSource

特に TreeView コントロール、Menu コントロールなどの階層的な ASP.NET サーバー コントロールのために XML ファイルで使用できます。XPath 式を使用するフィルタ機能をサポートし、データに XSLT 変換を適用できます。XmlDataSource を使用すると、変更内容を含めて XML ドキュメント全体を保存することによってデータを更新できます。

SiteMapDataSource

ASP.NET サイト ナビゲーションで使用します。詳細については、「ASP.NET サイト ナビゲーションの概要」を参照してください。

LinqDataSource コントロール

LinqDataSource コントロールを使用すると、ASP.NET ページ内の LINQ を使用して、データベース テーブルやメモリ内データ コレクションからデータを取得できます。宣言マークアップを使用すると、データの取得、フィルタ処理、並べ替え、およびグループ化に必要なすべての条件を記述できます。SQL データベース テーブルからデータを取得する場合は、更新、挿入、および削除の各操作を処理するように LinqDataSource コントロールを構成することもできます。そのためには、これらのタスクを実行する SQL コマンドを記述します。LinqDataSource コントロールを使用することで、他のデータ ソース コントロールで同じ操作を実行する場合に比べて、データ操作に必要なコードの量を減らすことができます。

詳細については、「LinqDataSource Web サーバー コントロールの概要」を参照してください。

SqlDataSource コントロール

SqlDataSource コントロールは、SQL コマンドを使用してデータを取得して変更します。SqlDataSource コントロールは、Microsoft SQL Server、OLE DB、ODBC、および Oracle データベースで動作します。

SqlDataSource コントロールは、DataReader または DataSet オブジェクトとして結果を返すことができます。結果が DataSet として返される場合は、並べ替え、フィルタ処理、およびキャッシュをサポートします。このコントロールを Microsoft SQL Server と共に使用する場合、データベースが変更された場合に SqlCacheDependency オブジェクトを使用してキャッシュの結果を無効にできます。

詳細については、「SqlDataSource Web サーバー コントロールの概要」を参照してください。

EntityDataSource コントロール

EntityDataSource コントロールは、Entity Data Model (EDM) に基づくデータ バインディング シナリオに対応しています。このデータの仕様では、データはエンティティとリレーションシップのセットとして表現されます。EDM は、Entity Framework によりオブジェクト リレーショナル マッピングや ADO.NET Data Services などのシナリオで使用されます。EntityDataSource コントロールは、クエリ言語として Entity-SQL (eSQL) をサポートしているほか、ObjectQuery<T> クラスが公開するクエリ仕様もサポートします。

詳細については、「EntityDataSource Web サーバー コントロールの概要」を参照してください。

ObjectDataSource コントロール

ObjectDataSource コントロールは、中間層ビジネス オブジェクトに依存する Web アプリケーションのビジネス オブジェクトまたはその他のクラスと共に使用してデータを管理します。このコントロールは、データを取得または変更するために 1 つ以上のメソッドを実装するオブジェクトと対話するように設計されています。データ連結コントロールが ObjectDataSource コントロールと対話してデータを取得または変更するときは、ObjectDataSource コントロールがメソッド呼び出しのパラメータとして値を連結コントロールからソース オブジェクトに渡します。

ソース オブジェクトのデータ検索メソッドは、DataSetDataTable、または DataView の各オブジェクト、または IEnumerable インターフェイスを実装するオブジェクトを返す必要があります。データが DataSetDataTable、または DataView の各オブジェクトとして返される場合、ObjectDataSource コントロールはデータをキャッシュしてフィルタできます。ソース オブジェクトが ObjectDataSource コントロールからページ サイズとレコード インデックス情報を受け取る場合は、高度なページング シナリオを実装することもできます。

詳細については、「ObjectDataSource Web サーバー コントロールの概要」を参照してください。

XmlDataSource コントロール

XmlDataSource コントロールは XML データを読み書きし、TreeView コントロール、Menu コントロールなどを使用してデータを操作できるようにします。XmlDataSource コントロールは、XML ファイルまたは XML 文字列を読み取ることができます。XML ファイルを使用する場合、このコントロールは変更された XML をソース ファイルに書き込むことができます。データを記述するスキーマが使用できる場合、XmlDataSource コントロールは型指定されたメンバを使用してデータを公開できます。

XML データに XSLT 変換を適用すると、XML ファイルから生データを取得して XML データに連結するコントロールに適した形式に再構築できます。

XPath 式を XML データに適用すると、XML ツリーの特定のノードだけを返すように XML データをフィルタできるため、特定の値を持っているノードなどを探すために使用できます。XPath 式を使用すると、新しいデータを挿入できなくなります。

詳細については、「XmlDataSource Web サーバー コントロールの概要」を参照してください。

AccessDataSource コントロール

AccessDataSource コントロールは、Microsoft Access .mdb ファイルと共に使用するように特別に設計された SqlDataSource コントロールの専用バージョンです。SqlDataSource コントロールと同様に、SQL ステートメントを使用してコントロールがデータをフェッチおよび取得する方法を定義します。

詳細については、「AccessDataSource Web サーバー コントロールの概要」を参照してください。

SiteMapDataSource コントロール

SiteMapDataSource コントロールは ASP.NET サイトマップと共に使用してサイト ナビゲーション データを提供します。このコントロールは、多くの場合 Menu コントロールと共に使用します。SiteMapDataSource コントロールは、TreeView コントロール、DropDownList コントロールなどのようにナビゲーションに特化して設計されていない Web サーバー コントロールと共にサイト マップ データを使用してサイト ナビゲーションをカスタマイズする場合にも便利です。

詳細については、「SiteMapDataSource Web サーバー コントロールの概要」を参照してください。

参照

概念

ASP.NET データ アクセスの概要

データベースへのバインド

データ ソース コントロールとパラメータの使用