1

OleDbを使用して、MS Access(v2003)データベースに接続しています。プロジェクトフォルダーはMyHotAppsであり、OleDb接続文字列はです。

MyConString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Users\Some User\Documents\Visual Studio 2010\WebSites\MyHotApps\Database\MyDbFile.mdb'";

上記のように、私のプロジェクトフォルダはMyHotAppsであり、データベースファイルMyDbFile.mdbはにありますProject_Folder<MyHotApps>\Database\MyDbFile.mdb

したがって、データベースファイルがプロジェクトフォルダ内にあることは私にはあまりにもローカルであり、プロジェクトフォルダを取得するたびにポータブル接続文字列が必要です。接続文字列を書き直すべきではありません。以下の方法を試しましたが、機能しませんでした。

MyConString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source'=~Database\MyDbFile.mdb'";

ポータブル接続文字列の作成方法を教えてもらえますかデータベースファイルをApp_Dataファイル内に配置する必要があるというフォームをいくつか読みましたが、その方法もわかりません。ポータブル接続文字列を作成する方法を教えてください。

4

2 に答える 2

1

あなたは利用することができますHttpRequest.PhysicalApplicationPath

そして、以下のようなことをすると、protablepathの問題が簡単に解決する可能性があります...

Request.PhysicalApplicationPath
于 2012-02-24T06:14:51.007 に答える
1

あなたは精通していOldDbConnectionStringBuilderますか?これをのような関連クラスと一緒にSqlConnectionStringBuilder使用すると、単純なコンストラクターとプロパティを使用して、必要なものを構築できます。さらに、System.IO.Pathクラスは、ディレクトリパスを作成するのに便利です。通常、(WPFアプリで)デフォルトのプロジェクトディレクトリが必要な場合は、を使用します AppDomain.CurrentDomain.BaseDirectory。次に、Path.Combine(base、filename)を使用して、ファイルへの完全な文字列を作成します。

System.IO.DirectorySystem.IO.DirectoryInfoまた便利です。

于 2012-02-24T06:53:41.677 に答える