ローカル データの概要

ローカル データという用語は、リモート サーバー上のデータベースに接続するのではなく、ローカル コンピューター上のデータベース ファイルにアプリケーションから接続することを意味します。 現在サポートされているローカル データベース ファイルは、SQL Server Compact 3.5 データベース ファイル (.sdf)、SQL Server および SQL Server Express データベース ファイル (.mdf)、Microsoft Access データベース ファイル (.mdb) です。

注意

クライアント アプリケーションに推奨されるローカル データベースは、SQL Server Compact 3.5 です。詳細については、「SQL Server Compact 3.5 と Visual Studio」を参照してください。

注意

.sdf ファイル、.mdf ファイル、または .mdb ファイルを Windows エクスプローラーからソリューション エクスプローラーにドラッグすると、接続が自動的に構成され、データ ソース構成ウィザードが起動します。 その後、アプリケーションで使用するオブジェクトを選択できます。

次の表に、アプリケーションをローカル データに接続する方法を説明するトピックへのリンクを示します。

トピック

説明

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

データ機能のテストとアプリケーションの作成を行うために使用できるローカル データベース ファイルを作成するための手順を示します。

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

データの機能とアプリケーションの構築をテストするために使用できるローカル データベース ファイルを作成するための手順を示します。

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

簡単な Windows アプリケーションを作成する際に SQL Server Express データベースに接続するための手順を示します。

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

Microsoft Access データベースへの接続の手順を示す例を提供します。

方法 : Northwind データベースへのデータ接続を作成する

Northwind サンプル データベースの SQL Server、SQL Server Compact 3.5、SQL Server Express、および Access バージョンに接続する方法の詳細について説明します。

ローカル データ ファイルにアクセスするように構成されたデータ ソースを作成すると、他のソースのデータと同じテクノロジとオブジェクトを使用してデータを操作できます。 詳細については、「データ アプリケーションの作成」を参照してください。

データベースはアプリケーションの一部

ローカル データの手法を使用する場合は、データベース ファイルに接続するだけでなく、データベース ファイルをアプリケーションに統合できます。 たとえば、[プロジェクト] メニューの [既存項目の追加] をクリックし、既存の .sdf ファイル、.mdf ファイル、または .mdb ファイルを探してファイルをプロジェクトに追加します。

メモ   データ ソース構成ウィザードを使用してローカル データ ファイルのデータ ソースを作成すると、プロジェクトにファイルを含めるかどうかをたずねられます。 プロジェクトにファイルを含めない場合、アプリケーションには実際のデータ ファイルではなく、ハードコーディングされたパスを指す接続文字列だけが含められます。 詳細については、「方法 : プロジェクトでローカル データ ファイルを管理する」を参照してください。

ローカル データ ファイルを追加すると、型指定されたデータセットおよびアプリケーションのデータベース ファイルを指す接続文字列が動的に作成されます。 データベース ファイルをプロジェクトに追加するときは、データ ソース構成ウィザードを使用してデータセットに含めるオブジェクトを選択します。

ウィザードの作業が完了すると、データベース ファイルとデータセットがソリューション エクスプローラーまたはデータベース エクスプローラーに表示され、選択したデータベース オブジェクトが [データ ソース] ウィンドウで使用できるようになります。 [データ ソース] ウィンドウからフォームに項目をドラッグして、基になるデータにバインドするコントロールを作成できます。 [データ] メニューの [データ ソースの表示] をクリックして [データ ソース] ウィンドウを開きます。 詳細については、「Visual Studio でのデータへのコントロールのバインド」を参照してください。

各プロジェクトに含まれるデータベースの 2 つのコピー

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

注意

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

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

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

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

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

動作

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

データベース ファイルは、プロジェクトが初めてビルドされたときに、プロジェクト ディレクトリから bin ディレクトリにコピーされます。 その後、プロジェクトをビルドするたびに、ファイルの [更新日時] プロパティが比較されます。 プロジェクト フォルダーのファイルの方が新しい場合は、現在のファイルを置き換えて [bin] フォルダーにコピーされます。 [bin] フォルダーのファイルの方が新しい場合、ファイルはコピーされません。

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

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

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

[コピーしない]

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

ローカル データの一般的な問題

次の表では、ローカル データ ファイルで作業する場合に遭遇する一般的な問題について説明します。

懸案事項

説明

アプリケーションをテストしてデータを変更し、次回アプリケーションを実行すると必ず変更内容が失われる

[出力ディレクトリにコピー][新しい場合はコピーする] または [常にコピーする] に設定されています。 この 2 つの設定では、プロジェクトを構築するたびに出力フォルダーのデータベース (アプリケーションをテストする際に変更されるデータベース) が上書きされます。 詳細については、「方法 : プロジェクトでローカル データ ファイルを管理する」を参照してください。

データ ファイルがロックされているというメッセージが表示される

Access (.mdb ファイル) : Access などの別のプログラムでファイルが開かれていないことを確認します。

SQL Server Express (.mdf ファイル) : Visual Studio IDE の外部でデータ ファイルをコピー、移動、または名前を変更しようとすると、SQL Express はデータ ファイルをロックします。

複数のユーザーが同時にデータベースにアクセスしようとするとアクセスが拒否される

Visual Studio は、各ユーザーに対して SQL Server のインスタンスが個別に作成される SQL Server Express の機能である ユーザー インターフェイスを使用します。 1 人のユーザーがファイルにアクセスすると、その後にアクセスするユーザーはだれも接続できなくなります。 これは、IIS は一般に個別のアカウントで実行されるので、ASP.NET 開発サーバーと IIS で Web アプリケーションを実行しようとする場合などに発生します。

参照

処理手順

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

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

方法 : SQL Server Compact 3.5 データベースをプロジェクトに追加する

方法 : SQL Server Compact 3.5 データベースをアプリケーションと共に配置する

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

チュートリアル : アプリケーションへの SQL Server Compact 3.5 データベースの追加とその配置