データ アプリケーションの作成
Visual Studio には、データにアクセスするアプリケーションの作成に役立つ多くのデザイン時ツールが用意されています。 ここでは、データを操作するアプリケーションの作成に関する基本的なプロセスの概要について説明します。 この説明はデータ アプリケーションの作成に関連する多くの他のヘルプ トピックにリンクするための情報源となることを目的としており、詳細説明の多くは省略しています。
Visual Studio でデータにアクセスするアプリケーションを開発するにしたがって、さまざまな要件が発生します。 場合によっては、データをフォームに表示するだけで十分です。 また、他のアプリケーションまたはプロセスと情報を共有できるしくみが必要な場合もあります。
データに対する操作の種類に関係なく、理解しておく必要のある一定の基本的な概念があります。 多くの場合、データ処理に関する一部の詳細事項については知る必要はありません (たとえば、データベースをプログラムで作成する必要はありません)。しかし、基本的なデータ概念や、Visual Studio で利用できるデータ ツール (ウィザードとデザイナー) について理解しておくと非常に役立ちます。
アプリケーション内でデータを操作する作業は、いくつかのトップレベルのプロセスに分けることができます。 たとえば、ユーザーのフォームにデータを表示する前に、まずデータ ソース (場合によりデータベースまたはデータを提供するサービス) に接続し、次に、表示するデータをフェッチする必要があります。 このデータをアプリケーションに読み込んだ後、通常はデータ モデルを使用して、オブジェクトにデータを格納します。 その後、アプリケーションで、ユーザーはデータ モデルの既存のデータへの追加または変更ができるようになります。 アプリケーションは、変更したデータをデータ ストアに戻します。
一般的なデータ アプリケーションは、次の図に示すようなプロセスの大部分を利用します。
データ サイクル
アプリケーションを作成するときは、実行する必要のあるタスクについて検討する必要があります。 次の各セクションは、利用できる Visual Studio ツールとオブジェクトを見つけるのに役立ちます。
注意
この図に示したプロセスのいくつかには、作業を簡略化するためのウィザードが用意されていることに注意してください。 たとえば、データ ソース構成ウィザードを実行すると、データに接続するのに十分な情報をアプリケーションに提供し、データを受け取るための型指定されたデータセットを作成して、アプリケーションにデータを読み込むことができます。
Visual Studio を利用してデータ アプリケーションを開発する方法については、「チュートリアル : 単純なデータ アプリケーションの作成」を参照してください。
データへの接続
アプリケーションにデータを読み込んで変更内容をデータ ソースに返送するには、なんらかの双方向通信を確立する必要があります。 一般にこの双方向通信は、データ モデルのオブジェクトによって処理されます。
たとえば、TableAdapter はデータセットを使用するアプリケーションをデータベースに接続し、ObjectContext は Entity Framework のエンティティをデータベースに接続します。 Visual Studio には、アプリケーションで使用できる接続の作成を支援するツールがいくつか用意されています。 アプリケーションをデータに接続する方法の詳細については、「Visual Studio でのデータへの接続」を参照してください。
データセットを使用して、アプリケーションをデータベースのデータに接続する方法については、「チュートリアル: データベース内のデータへの接続 (Windows フォーム)」を参照してください。
概念モデルを使用してデータに接続する方法については、「Entity Framework クイック スタート」を参照してください。
アプリケーションでデータを受け取るための準備
アプリケーションで非接続型データ モデルを使用する場合、データを操作するときにアプリケーションにデータを一時的に格納する必要があります。 Visual Studio には、アプリケーションがデータの一時的な格納に使用するオブジェクト (データセット、エンティティ、および LINQ to SQL オブジェクト) を作成するのに役立つツールが用意されています。
注意
一般に、非接続型データ モデルを使用するアプリケーションは、データベースに接続し、クエリを実行してアプリケーションにデータを読み込み、データベースから切断し、オフラインでデータを処理した後に再接続してデータベースを更新します。
アプリケーションで型指定されたデータセットを作成する方法の詳細については、「アプリケーションでデータを受け取る準備」を参照してください。 n 層アプリケーションでデータセットを使用する方法の詳細については、「方法 : データセットと TableAdapters を別々のプロジェクトに分離する」を参照してください。
データセットを作成する方法については、「チュートリアル : データセット デザイナーでのデータセットの作成」を参照してください。
Entity Data Model Wizardを使用してデータベースからエンティティを生成する方法については、「How to: Create a New .edmx File (Entity Data Model Tools)」を参照してください。
LINQ to SQL オブジェクトを作成する方法については、「チュートリアル : LINQ to SQL クラスの作成 (O/R デザイナー)」を参照してください。
アプリケーションへのデータのフェッチ
アプリケーションで非接続型データ モデルを使用するかどうかにかかわらず、アプリケーションにデータをフェッチできる必要があります。 データベースに対してクエリまたはストアド プロシージャを実行することにより、アプリケーションにデータを読み込みます。 データをデータセットに格納するアプリケーションでは、TableAdapter を使用してクエリとストアド プロシージャを実行するのに対し、データをエンティティに格納するアプリケーションでは LINQ to Entities を使用するか、エンティティをストアド プロシージャに直接接続することによってクエリを実行します。 TableAdapter を使用するクエリを作成および編集する方法の詳細については、「方法 : TableAdapter クエリを作成する」および「方法 : TableAdapter クエリを編集する」を参照してください。
Entity Framework でストアド プロシージャを使用する方法については、「How to: Map Modification Functions to Stored Procedures (Entity Data Model Tools)」を参照してください。
データをデータセットに読み込む方法、およびクエリとストアド プロシージャを実行する方法の詳細については、「アプリケーションへのデータのフェッチ」を参照してください。
データセットにデータを読み込む方法については、「チュートリアル: Windows フォームでのデータの表示」を参照し、フォーム読み込みイベント ハンドラーのコードを確認してください。
LINQ to SQL オブジェクトにデータを読み込む方法については、「チュートリアル : LINQ to SQL クラスの作成 (O/R デザイナー)」を参照してください。
SQL クエリの作成と実行の方法については、「方法 : 行を返す SQL ステートメントを作成および実行する」を参照してください。
ストアド プロシージャを実行する方法については、「方法 : 行を返すストアド プロシージャを実行する」を参照してください。
フォームでのデータの表示
アプリケーションにデータを読み込んだら、通常はそのデータをフォームに表示して、ユーザーが表示または変更できるようにします。 Visual Studio には、[データ ソース] ウィンドウが用意されています。このウィンドウからフォームに項目をドラッグして、データを表示するデータ バインド コントロールを自動的に作成できます。 データのバインドとユーザーへのデータ表示の詳細については、「Visual Studio でのデータへのコントロールのバインド」を参照してください。
ユーザーにデータを表示する方法について学ぶには、次のチュートリアルの手順を実行してください (特に、[データ ソース] ウィンドウから項目をドラッグするプロセスに注目してください)。
How to: Bind Objects to Windows Form Controls (Entity Framework)
How to: Bind Objects to Windows Presentation Foundation Controls (Entity Framework)
アプリケーションでのデータ編集
データがユーザーに表示されると、ユーザーは新しいレコードを追加したり、レコードの編集や削除を行ってそのデータを変更してから、データベースにデータを返送する場合があります。
データセットに読み込まれたデータの操作の詳細については、「アプリケーションでのデータ編集」を参照してください。
Entity Framework アプリケーションでデータを操作する方法の詳細については、「Working with Objects (Entity Framework)」を参照してください。
データの検証
データを変更する場合、通常は変更内容を検証してからデータセットに値を戻したりデータベースに書き込むことができるようにします。 検証は、これらの新しい値がアプリケーションの要件を満たすことを検査するプロセスの名前です。 値を変更するときにアプリケーションで値を検査するロジックを追加できます。 Visual Studio には、列および行の変更時にデータを検証するコードを追加するためのツールが用意されています。 詳細については、「データの検証」を参照してください。
アプリケーションにデータの検証を追加する方法については、「チュートリアル : データセットへの検証の追加」を参照してください。
n 層アプリケーションに分離されたデータセットに検証を追加する方法については、「方法 : n 層データセットに検証を追加する」を参照してください。
Entity Data Model のデータを検証する方法の詳細については、「How to: Execute Business Logic When Saving Changes (Entity Framework)」を参照してください。
データの保存
アプリケーションで変更を行って変更内容を検証した後、通常は変更内容をデータベースに返送します。 データをデータセットに格納するアプリケーションは、通常 TableAdapterManager を使用してデータを保存します。 詳細については、「TableAdapterManager の概要」を参照してください。 Entity Framework アプリケーションでは、SaveChanges メソッドを使用してデータを保存します。
更新されたデータをデータベースに返送する方法の詳細については、「データの保存」を参照してください。
更新済みのデータをデータセットからデータベースに返送する方法については、「チュートリアル : 関連するデータ テーブルからのデータの保存 (階層更新)」を参照してください。
Entity Framework アプリケーションでデータを保存する方法の詳細については、「Saving Changes and Managing Concurrency」を参照してください。
関連トピック
データ アプリケーション開発の新機能
データ ソースの操作とデータ アプリケーションの作成のために Visual Studio 2010 に用意されている新しい機能について説明します。Visual Studio のデータ アプリケーションの概要
データを操作するアプリケーションを作成する方法について説明しているトピックへのリンクを示します。Visual Studio でのデータへの接続
Visual Studio を使用してアプリケーションをデータに接続し、アプリケーションのデータ ソースを作成する方法に関するトピックへのリンクを示します。アプリケーションでデータを受け取る準備
アプリケーションでデータセットや Entity Data Model などのデータ モデルを操作する方法について説明しているトピックへのリンクを示します。アプリケーションへのデータのフェッチ
アプリケーションにデータを読み込む方法について説明しているトピックへのリンクを示します。Visual Studio でのデータへのコントロールのバインド
Windows フォーム コントロール、WPF コントロール、および Silverlight コントロールをデータ ソースにバインドする方法について説明しているトピックへのリンクを示します。アプリケーションでのデータ編集
アプリケーションでデータを変更する方法について説明しているトピックへのリンクを示します。データの検証
データ変更に検証を加える方法について説明しているトピックへのリンクを示します。データの保存
更新したデータをアプリケーションからデータベースに送信する方法、またはそれらのデータを XML などの他の形式に保存する方法について説明しているトピックへのリンクを示します。Visual Studio でデータ ソースを操作するためのツール
[データ ソース] ウィンドウや ADO.NET Entity Data Model デザイナーなど、Visual Studio でデータ ソースを操作するために使用できるツールに関するトピックへのリンクを示します。接続の頻度があまり高くないアプリケーション (ローカル データベース キャッシュ)
アプリケーションに Microsoft Synchronization Services for ADO.NET を組み込む方法に関するトピックへのリンクを示します。SQL Server Compact 3.5 (Visual Studio) の使用
アプリケーションに SQL Server Compact 3.5 データベースを組み込む方法に関するトピックへのリンクを示します。