結果セットとデータセットの対比 (デバイス)
更新 : 2007 年 11 月
Visual Studioデータ ソース構成ウィザードでは、DataSet または System.Data.SqlServerCe.SqlCeResultSet に基づくデバイス プロジェクト内のデータ ソース コードを生成できます。生成されるコードは、ユーザー インターフェイス コントロールにバインドでき、SQL Server Compact 3.5 データベースとデータを交換できるデバイス プロジェクト内のデータ ソースを表します。ただし、SqlCeResultSet ベースのコードは、DataSet ベースのコードに比べ、高速で実行され、使用するメモリが少なく、詳細な出力を行います。これは、SqlCeResultSet ではポインタを使用してデータベースを直接操作するのに対し、DataSet ではデータベースのデータのコピーをデバイス アプリケーションに保存するためです。このトピックでは、SqlCeResultSet ベースのデータ ソースと DataSet ベースのデータ ソースの両方について説明します。
メモ : |
---|
既定では、データ ソース ウィザードを使用して新しいデータ ソースを作成した場合、Visual Studio によって DataSet ベースのコードが生成されます。これらのクラスのいずれかまたは両方を生成するには、「方法 : SqlCeResultSet コードを生成する (デバイス)」を参照してください。 |
SqlCeResultSets と DataSets のアーキテクチャの相違点を次の図に示します。
結果セット
データ ソース構成ウィザードは、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 クラスを作成します。データを表すクラスは DataSet、Microsoft.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 コードを生成する (デバイス)