ローカル データの概要
更新 : 2007 年 11 月
ローカル データという用語は、リモート サーバーのデータベースに接続する代わりに、アプリケーションとデータベース ファイルの接続がローカル コンピュータにあることを意味します。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 Express データベース ファイル (.mdf) 間の接続を作成するための概要を説明します。 |
|
簡単な Windows アプリケーションを作成する際に SQL Server Express データベースに接続するための手順を示します。 |
|
アプリケーションと Microsoft Access データベース ファイル (.mdb) 間の接続を作成するための手順を示します。 |
|
Microsoft Access データベースへの接続の手順を示す例を提供します。 |
|
Northwind サンプル データベースの SQL Server、SQL Server Compact 3.5、SQL Server Express、および Access バージョンに接続する方法の詳細について説明します。 |
ローカル データ ファイルにアクセスするように構成されたデータ ソースを作成すると、他のソースのデータと同じテクノロジとオブジェクトを使用してデータを操作できます。詳細については、「クライアント データ アプリケーションの作成」を参照してください。
データベースはアプリケーションの一部
ローカル データの手法を使用する場合は、データベース ファイルに接続するだけでなく、データベース ファイルをアプリケーションに統合できます。たとえば、[プロジェクト] メニューの [既存項目の追加] をクリックし、既存の .sdf ファイル、.mdf ファイル、または .mdb ファイルを探してファイルをプロジェクトに追加します。
メモ データ ソース構成ウィザードを使用してローカル データ ファイルのデータ ソースを作成すると、プロジェクトにファイルを含めるかどうかをたずねられます。プロジェクトにファイルを含めない場合、アプリケーションには実際のデータ ファイルではなく、ハードコーディングされたパスを指す接続文字列だけが含められます。詳細については、「方法 : プロジェクトでローカル データ ファイルを管理する」を参照してください。
ローカル データ ファイルを追加すると、型指定されたデータセットおよびアプリケーションのデータベース ファイルを指す接続文字列が動的に作成されます。データベース ファイルをプロジェクトに追加するときは、データ ソース構成ウィザードを使用してデータセットに含めるオブジェクトを選択します。
ウィザードの作業が完了すると、データベース ファイルとデータセットがソリューション エクスプローラまたはデータベース エクスプローラに表示され、選択したデータベース オブジェクトが [データ ソース] ウィンドウで使用できるようになります。[データ ソース] ウィンドウからフォームに項目をドラッグして、基になるデータにバインドするコントロールを作成できます。[データ] メニューの [データ ソースの表示] をクリックして [データ ソース] ウィンドウを開きます。詳細については、「Windows アプリケーションのフォームでのデータの表示」を参照してください。
各プロジェクトに含まれるデータベースの 2 つのコピー
プロジェクトをビルドしたときに、ルート プロジェクト フォルダから出力 (bin) フォルダにデータベース ファイルがコピーされる場合があります (bin フォルダを表示するには、ソリューション エクスプローラの [すべてのファイルを表示] をクリックします)。この動作は、ファイルの [出力ディレクトリにコピー] プロパティによって決まります。[出力ディレクトリにコピー] プロパティの既定の設定は、使用しているデータベース ファイルの種類に依存します。
メモ : |
---|
[出力ディレクトリにコピー] プロパティの動作は、Web プロジェクトまたは C++ プロジェクトには適用されません。 |
ルート プロジェクト フォルダ内のデータベース ファイルは、サーバー エクスプローラやデータベース エクスプローラまたはその他の Visual Database Tools を使用してデータベースのスキーマまたはデータを編集する場合のみ変更されます。
データベース ファイルの動作は、次の表で詳しく説明する [出力ディレクトリにコピー] プロパティの設定に依存します。
アプリケーションの開発中におけるアプリケーションの実行中のデータの変更は、[bin] フォルダのデータベースに対して行われます。たとえば、F5 キーを押してアプリケーションをデバッグすると、bin フォルダ内のデータベースに接続されます。
[出力ディレクトリにコピー] の設定 |
動作 |
---|---|
[新しい場合はコピーする] (.sdf ファイルの既定値) |
データベース ファイルは、プロジェクトが最初に構築される際にプロジェクト ディレクトリから [bin] ディレクトリにコピーされます。その後にプロジェクトを構築するたびに、ファイルの更新日時プロパティが比較されます。プロジェクト フォルダのファイルの方が新しい場合は、現在のファイルを置き換えて [bin] フォルダにコピーされます。[bin] フォルダのファイルの方が新しい場合、ファイルはコピーされません。
注意 :
このオプションは、.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 Express Server データベース内のデータに接続する
チュートリアル : SQL Server Express データベース内のデータへの接続
チュートリアル : Access データベース内のデータへの接続
方法 : SQL Server Compact 3.5 データベースをプロジェクトに追加する
方法 : SQL Server Compact 3.5 データベースをアプリケーションと共に配置する