方法 : Excel のスプレッドシートからデータを生成する
データベース単体テストをより有意義なものにするために、テスト用データベースに、データベースのスキーマに適したテスト データ (ただし、本番データには関連付けられていないデータ) を読み込むことができます。 Visual Studio Premium でデータ バインド ジェネレーターを使用して、テーブルの列に Microsoft Excel ワークブックのデータを読み込むことができます。 テスト データを生成する方法の詳細については、「データ ジェネレーターを使用したデータベースのテスト データの生成」を参照してください。
この手順では、次の操作を実行します。
データベース プロジェクトのテーブル列にデータ バインド ジェネレーターを割り当てます。
OLE DB プロバイダーを使用して、ワークブックに対する接続を作成します。
ワークブックからテーブル列に読み込むデータを指定します。
必要条件
この手順では、データベース プロジェクトを開いており、そのプロジェクト用にデータ生成計画を作成していることを前提とします。 また、データの生成に使用する Excel ワークブックがあることも前提とします。 データ生成計画を作成する方法の詳細については、「方法 : データ生成計画を作成する」を参照してください。
列にデータ バインド ジェネレーターを割り当てるには
ソリューション エクスプローラーでデータ生成計画をダブルクリックします (計画をまだ開いていない場合)。
データ生成計画が表示されます。
データの生成先とするテーブルをクリックします。
[データ生成計画] ウィンドウの [列の詳細] ペインで、ワークブックのデータを読み込むテーブル列の行を探します。 その行で、[ジェネレーター] 列のセルをクリックし、下向きの矢印をクリックして、[データ バインド ジェネレーター] をクリックします。
次に、ワークブックに接続する情報を指定します。
OLE DB プロバイダーを使用して、ワークブックに対する接続を作成するには
[プロパティ] ウィンドウの [接続情報] プロパティで、下向きの矢印をクリックし、[新しい接続の追加] をクリックします。
[データ ソースの選択] ダイアログ ボックスが開きます。
[データ ソース] のボックスの一覧で、[<その他>] をクリックします。
[データ プロバイダー] ボックスの一覧で、[.NET Framework OLE DB 用データ プロバイダー] をクリックし、[続行] をクリックします。
[接続のプロパティ] ダイアログ ボックスが表示されます。
[OLE DB プロバイダー] ボックスの一覧で、[Microsoft Jet 4.0 OLE DB Provider] をクリックし、[詳細設定] をクリックします。
[プロパティの詳細] ダイアログ ボックスが表示されます。
[拡張プロパティ] プロパティに「Excel 8.0」 (Microsoft Office 2003 System を使用している場合) または「Excel 12.0」 (2007 Microsoft Office System を使用している場合) と入力し、[OK] をクリックします。
注意
Microsoft Excel 2010 を使用して作成したスプレッドシートに接続しようとしたときにエラーが表示される場合は、スプレッドシートを Excel 97-2003 ブックとして保存できます。
[サーバー名またはファイル名] ボックスに、ワークブックのパスとファイル名を入力します (たとえば、C:\Temp\TestData.xls)。
[接続の確認] をクリックします。
接続が確立されると、"テスト接続に成功しました" というメッセージと共にメッセージ ボックスが開きます。 接続できないエラーが表示された場合は、ワークブックが使用されていないことを確認します。
[OK] をクリックします。
注意
[プロパティ] ウィンドウから接続を追加しようとしたときにエラーが表示される場合は、代わりにサーバー エクスプローラーを使用して接続を追加できます。 詳細については、「方法 : サーバー エクスプローラーからデータベースに接続する」を参照してください。
最後の手順では、新しい接続を使用してワークブックのデータを選択し、[データ生成プレビュー] ウィンドウに表示される結果を調べます。
ワークブックのデータを選択し、結果を確認するには
[プロパティ] ウィンドウで、データを読み込む列の [クエリの選択] プロパティに SELECT ステートメントを入力します。 たとえば、AnnualSales という名前のワークシートからすべてのデータを取得する場合、以下を入力します。
SELECT * FROM [AnnualSales$]
注意
ワークシート名は、最後に $ を指定して角かっこで囲みます。
[データ生成計画] ウィンドウの [列の詳細] ペインで、ワークブックのデータを読み込むテーブル列の行を探します。 その行で、[ジェネレーター出力] 列のセルをクリックし、下向きの矢印をクリックします。 使用するデータを含むワークシートの名前をクリックします。
手順 1. でクエリを指定しなかった場合、またはクエリで指定されているワークシート名が見つからなかった場合、[ジェネレーター出力] 列には "<強制出力なし>" としか表示されません。
[データ] メニューの [データ ジェネレーター] をポイントし、[データ生成のプレビュー] をクリックします。
[データ生成プレビュー] ウィンドウが開きます。 スプレッドシートからデータを読み込むように指定した列に、ワークブックの値が表示されます。