結果セットとデータセットの対比 (デバイス)

更新 : 2007 年 11 月

Visual Studioデータ ソース構成ウィザードでは、DataSet または System.Data.SqlServerCe.SqlCeResultSet に基づくデバイス プロジェクト内のデータ ソース コードを生成できます。生成されるコードは、ユーザー インターフェイス コントロールにバインドでき、SQL Server Compact 3.5 データベースとデータを交換できるデバイス プロジェクト内のデータ ソースを表します。ただし、SqlCeResultSet ベースのコードは、DataSet ベースのコードに比べ、高速で実行され、使用するメモリが少なく、詳細な出力を行います。これは、SqlCeResultSet ではポインタを使用してデータベースを直接操作するのに対し、DataSet ではデータベースのデータのコピーをデバイス アプリケーションに保存するためです。このトピックでは、SqlCeResultSet ベースのデータ ソースと DataSet ベースのデータ ソースの両方について説明します。

ms180730.alert_note(ja-jp,VS.90).gifメモ :

既定では、データ ソース ウィザードを使用して新しいデータ ソースを作成した場合、Visual Studio によって DataSet ベースのコードが生成されます。これらのクラスのいずれかまたは両方を生成するには、「方法 : SqlCeResultSet コードを生成する (デバイス)」を参照してください。

SqlCeResultSetsDataSets のアーキテクチャの相違点を次の図に示します。

SqlCeResultSet と DataSet の違い

結果セット

データ ソース構成ウィザードは、SqlCeResultSet ベースのデータソースを生成するとき、SqlCeResultSet から継承するクラスを作成します。DataSet ベースのデータ ソースとは異なり、SqlCeResultSet ベースのデータ ソースは、データを保存しません。代わりに、SqlCeResultSet は、データベースへのポインタを保持し、データベース内のデータを TableAdapter を使用せずに読み取って更新します。データベースへの直接アクセスが可能なのは、SqlCeResultSet が .NET Compact Framework Data Provider for SQL Server Compact 3.5 (以前のバージョンは SQL Server Mobile) の一部だからです。詳細については、「型指定された ResultSet の生成」を参照してください。

総合的に考えると、SqlCeResultSet ベースのデータソースは、必要なメモリが少なく、パフォーマンスもよいのですが、DataSet ベースのデータソースよりも機能の数は少なくなります。

データセット

データ ソース構成ウィザードは、DataSet ベースのデータ ソースを生成するとき、データを表すクラスと、アプリケーションとデータベース間でデータを交換するための TableAdapter クラスを作成します。データを表すクラスは DataSetMicrosoft.Office.Interop.Excel.DataTable、および DataRow から継承し、これらのクラスがデータベースのデータを保存します。データ ソース ウィザードは、データベースのリレーショナル構造と制約をミラー化するために、以下を生成します。

  • DataSet から派生し、データソース追加ウィザードで選択された各テーブル用の Datatable を格納するクラス。詳細については、「型指定されたデータセット (ADO.NET)」を参照してください。

  • DataTable から派生するクラスも、それぞれがデータベースの列をミラー化する DataColumn オブジェクトのセットを格納します。

  • 各テーブルの DataRow から派生するクラス。

  • 非 null、一意、主キー、外部キーなどのデータベースのリレーションシップ制約。

  • データベースと、デバイス アプリケーションのデータ オブジェクトとの間でデータを交換するための TableAdapter クラス。TableAdapter クラスは、データベースからデータを読み取り、変更されたデータをデータベースに書き込むためのメソッドを含みます。詳細については、「TableAdapter の概要」を参照してください。

このトピックで説明したクラスは、ADO.NET アーキテクチャと互換性があります。したがって、データ アクセス モデルは、デスクトップ上で .NET Framework を使用する ADO.NET データに似ています。詳細については、「データへのアクセス (Visual Studio)」および「.NET Compact Framework でのデータ アクセスと XML サポート」を参照してください。

総合的に考えると、DataSet ベースのデータ ソースの機能は多いのですが、SqlCeResultSet ベースのデータ ソースに比べ、より多くのメモリとプロセッサ リソースを必要とします。

参照

処理手順

方法 : SqlCeResultSet コードを生成する (デバイス)

概念

データ アクセスに関する推奨事項

その他の技術情報

SQL Server Compact 3.5 オンライン ブック ホーム ページ

マネージ デバイス プロジェクトでのデータの操作