方法 : プロジェクトでローカル データ ファイルを管理する

ローカル データベース ファイルは、プロジェクトのファイルとして含めることができます。 初めてアプリケーションをローカル データベース ファイルに接続するときに、データベースのコピーをプロジェクトに作成するか、現在の場所にある既存のデータベース ファイルに接続するかを選択できます。 既存のファイルに接続すると、リモート データベースに接続するときと同じように接続が作成され、データベース ファイルは元の場所に残ります。 データベースをプロジェクトにコピーすると、データベース ファイルのコピーが作成されてプロジェクトに追加され、データベース ファイルの元の場所ではなく、プロジェクト内のデータベースを指すように接続が変更されます。

注意

サーバー エクスプローラーまたはデータベース エクスプローラーの既存のデータ接続も、プロジェクト内のデータベース ファイル (プロジェクトのルート フォルダーにあるデータベース ファイル) を指すように変更されます。

プロジェクトをビルドしたときに、ルート プロジェクト フォルダーから出力 (bin) フォルダーにデータベース ファイルがコピーされる場合があります (bin フォルダーを表示するには、ソリューション エクスプローラー[すべてのファイルを表示] をクリックします)。 この動作の原因は、ファイルの "出力ディレクトリにコピー" プロパティです。 "出力ディレクトリにコピー" プロパティの既定の設定は、使用しているデータベース ファイルの種類に依存します。

注意

"出力ディレクトリにコピー" プロパティの動作は、Web プロジェクトまたは C++ プロジェクトには適用されません。

ルート プロジェクト フォルダー内のデータベース ファイルは、サーバー エクスプローラーデータベース エクスプローラーまたはその他の Visual Database Tools を使用してデータベースのスキーマまたはデータを編集する場合のみ変更されます。

データベース ファイルの動作は、次の表で詳しく説明する "出力ディレクトリにコピー" プロパティの設定に依存します。

アプリケーションの開発中、(アプリケーション内で実行時に) データに対して行われた変更は、bin フォルダー内のデータベースに反映されます。 たとえば、F5 キーを押してアプリケーションをデバッグすると、bin フォルダー内のデータベースに接続されます。

[出力ディレクトリにコピー] の設定

動作

[新しい場合はコピーする] (.sdf ファイルの既定値)

データベース ファイルは、プロジェクトが初めてビルドされたときに、プロジェクト ディレクトリから bin ディレクトリにコピーされます。 その後、プロジェクトをビルドするたびに、ファイルの [更新日時] プロパティが比較されます。 プロジェクト フォルダー内のファイルの方が新しい場合は、そのファイルが bin フォルダーにコピーされ、既存のファイルと置き換えられます。 bin フォルダー内のファイルの方が新しい場合、ファイルはコピーされません。 この設定により、実行時にデータに対して行われた変更が保持されます。つまり、アプリケーションを実行し、データの変更を保存すると、次にアプリケーションを実行したときにこれらの変更が反映されます。

Caution メモ注意
このオプションは、.mdb ファイルまたは .mdf ファイルには推奨されません。データベース ファイルは、データを変更しなかった場合でも更新されることがあります。単にデータ ファイルへの接続を開く (たとえば、サーバー エクスプローラー[テーブル] ノードを展開する) だけでも、そのファイルは更新されます。このように動作を予測できないため、.mdb ファイルまたは .mdf ファイルではこのオプションは使用しないことをお勧めします。

[常にコピーする] (.mdf ファイルおよび .mdb ファイルの既定値)

データベース ファイルは、アプリケーションをビルドするたびに、プロジェクト ディレクトリから bin ディレクトリにコピーされます。 アプリケーションをビルドし、データへの変更を保存すると、変更前のファイルが bin ディレクトリにコピーされるたびに、これらの変更が上書きされるため、変更したばかりのコピーは置き換えられます。 この更新されたデータは、次にアプリケーションを実行したときに反映されません。 出力フォルダー内のデータ ファイルに行った変更は、次にアプリケーションを実行したときに上書きされます。

[コピーしない]

プロジェクト システムによって、ファイルがコピーまたは上書きされることはありません。 アプリケーションによって、出力ディレクトリ内のデータベース ファイルを指す動的な接続文字列が作成されるため、この設定は、ローカル データベース ファイルを手動でコピーする場合にそのファイルのみに適用します。 [コピーしない] に設定した後は、手動で出力ディレクトリにファイルをコピーする必要があります。

手順

[ローカル データベース ファイル] ダイアログ ボックスに応答するには

  • Visual Studio で、データベース ファイルをプロジェクトにコピーし、そのプロジェクト内のコピーを指すように接続を変更する場合は、[はい] をクリックします。 プロジェクトのデータベース ファイルの操作の詳細については、「ローカル データの概要」を参照してください。

  • Visual Studio で、データベース ファイルがプロジェクトにコピーされないようにする場合は、[いいえ] をクリックします。 この場合、接続は元の場所にあるファイルを指し、データベース ファイルがプロジェクトにファイルとして追加されることはありません。

参照

処理手順

チュートリアル: SQL Server Express データベース内のデータへの接続 (Windows フォーム)

チュートリアル: Access データベース内のデータへの接続 (Windows フォーム)

チュートリアル : SQL Server Compact 3.5 データベースの作成

その他の技術情報

SQL Server Compact 3.5 (Visual Studio) の使用