チュートリアル : Visual Studio での ADO.NET データ サービスの作成とアクセス
更新 : 2008 年 7 月
このチュートリアルでは、ASP.NET Web アプリケーションでホストされる簡単な ADO.NET データ サービスを作成して、Windows フォーム アプリケーションからアクセスする方法について説明します。
このチュートリアルでは、次の作業を行います。
ADO.NET データ サービスをホストする Web アプリケーションを作成します。
Northwind データベースの Customers テーブルを表すエンティティ データ モデルを作成します。
ADO.NET データ サービスを作成します。
クライアント アプリケーションを作成し、ADO.NET データ サービスへの参照を追加します。
サービスへのデータ バインディングを有効にし、ユーザー インターフェイスを生成します。
必要に応じて、アプリケーションにフィルタ処理機能を追加します。
前提条件
このチュートリアルを実行するには、次のコンポーネントが必要です。
Northwind サンプル データベース。
開発用コンピュータにこのデータベースがインストールされていない場合は、Microsoft ダウンロード センターからダウンロードできます。手順については、「サンプル データベースのダウンロード (LINQ to SQL)」を参照してください。
サービスの作成
ADO.NET データ サービスを作成するには、Web プロジェクトを追加し、エンティティ データ モデルを作成した後、そのモデルからサービスを作成します。
最初に、サービスをホストする Web プロジェクトを追加します。
メモ : |
---|
お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。 |
Web プロジェクトを作成するには
Visual Studio の [ファイル] メニューの [新しいプロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスの [Visual Basic] ノードまたは [Visual C#] ノードを展開して、[Web] をクリックし、[ASP .NET Web アプリケーション] をクリックします。
"プロジェクト名" フィールドに「NorthwindWeb」と入力し、[OK] をクリックしてプロジェクトを作成します。
この手順では、Northwind データベースにある Customers テーブルを表すエンティティ データ モデルを作成します。
Entity Data Model を作成するには
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[ADO.NET エンティティ データ モデル] をクリックします。
"名前" フィールドに「NorthwindModel」と入力し、[追加] をクリックします。
Entity Data Model ウィザードが表示されます。
Entity Data Model ウィザードで [データベースから生成] を選択し、[次へ] をクリックします。
[データ接続の選択] ページで、次のいずれかの操作を行います。
Northwind サンプル データベースへのデータ接続がドロップダウン リストに表示されている場合は、これをクリックします。
または
[新しい接続] をクリックし、新しいデータ接続を構成します。詳細については、「方法 : SQL Server データベースへの接続を作成する」を参照してください。
データベースにパスワードが必要な場合は、該当するオプションを選択して重要情報を含め、[次へ] をクリックします。
メモ : ダイアログ ボックスが表示された場合は、[はい] をクリックしてファイルをプロジェクトに保存します。
[データベース オブジェクトの選択] ページで、[テーブル] ノードを展開し、[Customers] の横のチェック ボックスをオンにし、[完了] をクリックします。
エンティティ モデル ダイアグラムが表示され、プロジェクトに NorthwindModel.edmx ファイルが追加されます。
この手順では、データ サービスを作成してテストします。
データ サービスを作成するには
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[ADO.NET データ サービス] をクリックします。
"名前" フィールドに「NorthwindCustomers」と入力し、[追加] をクリックします。
NorthwindCustomers.svc ファイルがコード エディタに表示されます。
コード エディタで、最初の TODO: コメントを探して、コードを次のコードに置き換えます。
Inherits DataService(Of NORTHWINDModel.NORTHWINDEntities)
public class NorthwindCustomers : DataService<NORTHWINDModel.NORTHWINDEntities>
メモ : 使用している Northwind データベースのバージョンによっては、「NORTHWIND」を「NORTHWND」に変更する必要があります。IntelliSense を使用して、正しい名前を調べることもできます。
InitializeService イベント ハンドラのコメントを次のコードに置き換えます。
config.SetEntitySetAccessRule("*", EntitySetRights.All)
config.SetEntitySetAccessRule("*", EntitySetRights.All);
Ctrl キーを押しながら F5 キーを押して、サービスを実行します。ブラウザ ウィンドウが開き、そのサービスの XML スキーマが表示されます。
[アドレス] バーの NorthwindCustomers.svc の URL の末尾に「Customers」と入力し、Enter キーを押します。
Customers テーブル内のデータの XML 表現が表示されます。
メモ : Internet Explorer がデータを誤って RSS フィードとして解釈する場合があります。RSS フィードを表示するオプションが無効になっていることを確認してください。詳細については、「サービス参照のトラブルシューティング」を参照してください。
ブラウザ ウィンドウを閉じます。
次の手順では、サービスを使用する Windows フォーム クライアント アプリケーションを作成します。
クライアント アプリケーションの作成
クライアント アプリケーションを作成するには、2 つ目のプロジェクトを追加し、そのプロジェクトにサービス参照を追加します。そして、データ ソースを構成し、サービスから取得したデータを表示するユーザー インターフェイスを作成します。
最初に、Windows フォーム プロジェクトをソリューションに追加し、スタートアップ プロジェクトに設定します。
クライアント アプリケーションを作成するには
Visual Studio の [ファイル] メニューの [追加] をポイントし、[新しいプロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスの [Visual Basic] ノードまたは [Visual C#] ノードを展開して、[Windows] をクリックし、[Windows フォーム アプリケーション] をクリックします。
"プロジェクト名" フィールドに「NorthwindClient」と入力し、[OK] をクリックして、プロジェクトを開きます。
ソリューション エクスプローラで NorthwindClient プロジェクトを選択します。
[プロジェクト] メニューの [スタートアップ プロジェクトに設定] をクリックします。
この手順では、Web プロジェクト内の ADO.NET データ サービスへのサービス参照を追加します。
サービス参照を追加するには
[プロジェクト] メニューの [サービス参照の追加] をクリックします。
[サービス参照の追加] ダイアログ ボックスで [探索] をクリックします。
NorthwindCustomers サービスの URL が "アドレス" フィールドに表示されます。
[OK] をクリックして、サービス参照を追加します。
この手順では、データ ソースを構成して、サービスへのデータ バインディングを有効にします。
サービスへのデータ バインディングを有効にするには
[データ] メニューの [データ ソースの表示] をクリックします。
[データ ソース] ウィンドウで、[新しいデータ ソースの追加] をクリックします。
データ ソースの構成ウィザードの [データ ソースの種類を選択] ページで、[オブジェクト] をクリックし、[次へ] をクリックします。
[バインドするオブジェクトを選択] ページで、NorthwindClient ノードを展開し、さらに NorthwindClient.ServiceReference1 ノードを展開します。
[Customers] を選択し、[完了] をクリックします。
この手順では、サービスから取得したデータを表示するユーザー インターフェイスを作成します。
ユーザー インターフェイスを作成するには
[データ ソース] ウィンドウからフォームに [Customers] ノードをドラッグします。
DataGridView コントロール、BindingSource コンポーネント、および BindingNavigator コンポーネントがフォームに追加されます。
フォームをダブルクリックしてコード エディタを開き、Form1_Load イベント ハンドラに次のコードを追加します。
Dim proxy As New ServiceReference1.NORTHWINDEntities _ (New Uri("https://localhost:14735/NorthwindCustomers.svc")) Me.CustomersBindingSource.DataSource = proxy.Customers
ServiceReference1.NORTHIWNDEntities proxy = new ServiceReference1.NORTHIWNDEntities(new Uri("https://localhost:14735/NorthwindCustomers.svc")); this.customersBindingSource.DataSource = proxy.Customers;
メモ : 使用している Northwind データベースのバージョンによっては、「NORTHWIND」を「NORTHWND」に変更する必要があります。IntelliSense を使用して、正しい名前を調べることもできます。
ソリューション エクスプローラで NorthwindCustomers.svc ファイルを右クリックし、[ブラウザで表示] をクリックします。Internet Explorer が開き、そのサービスの XML スキーマが表示されます。
Internet Explorer のアドレス バーから URL をコピーします。
手順 2. で追加したコードの「https://localhost:14735/NorthwindCustomers.svc」を選択し、コピーした URL に置き換えます。
F5 キーを押してアプリケーションを実行します。顧客情報が表示されます。
この時点で、NorthwindCustomers サービスから取得した顧客の一覧を表示するアプリケーションが作成されました。このサービスを使用して他のデータも公開する場合は、エンティティ データ モデルを変更して、Northwind データベースの他のテーブルを含めます。
次の省略可能な手順では、サービスによって返されたデータをフィルタ処理する方法について説明します。
フィルタ処理機能の追加
この手順では、アプリケーションをカスタマイズして、都市で顧客データをフィルタ処理します。
都市によるフィルタ処理を追加するには
ソリューション エクスプローラで Form1.vb または Form1.cs をダブルクリックして、Windows フォーム デザイナを表示させます。
Button コントロールをダブルクリックし、Button1_Click イベント ハンドラに次のコードを追加します。
Dim proxy As New ServiceReference1.NORTHWINDEntities _ (New Uri("https://localhost:14735/NorthwindCustomers.svc")) Dim city As String = TextBox1.Text If city <> "" Then Me.CustomersBindingSource.DataSource = From c In _ proxy.Customers Where c.City = city End If
ServiceReference1.NORTHWINDEntities proxy = new ServiceReference1.NORTHWINDEntities(new Uri("https://localhost:14735/NorthwindCustomers.svc")); string city = textBox1.Text; if (city != "") { this.customersBindingSource.DataSource = from c in proxy.Customers where c.City == city select c;
このコードの https://localhost:14735/NorthwindCustomers.svc を Form1_Load イベント ハンドラの URL に置き換えます。
F5 キーを押してアプリケーションを実行します。
テキスト ボックスに「London」と入力し、ボタンをクリックします。ロンドンの顧客だけが表示されます。
参照
処理手順
方法 : ADO.NET のサービス参照を追加、更新、または削除する
その他の技術情報
ADO.NET Data Services Framework
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2008 年 7 月 |
トピックを追加 |
SP1 機能変更 |