|DataDirectory|解決webconfig數據庫鏈接的相對路徑問題

webconfig中的數據庫鏈接是不支持Server.MapPath的,通常咱們只能寫上數據庫文件的物理路徑,這給網站遷移帶來很大的不方便。今天在網上找到了一個解決辦法,與你們分享下。看如下代碼: web

<connectionStrings>
<add name="ConnStr_Access"
      providerName="System.Data.OleDb"
      connectionString=
      "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\cms.mdb;"
    />
</connectionStrings>

|DataDirectory|會被自動解析到App_Data

下面是MSDN的說明: 數據庫

 

使用 DataDirectory 替代字符串

AttachDbFileName 已在 ADO.NET 2.0 中進行了擴展,引入了 |DataDirectory|(包含在管道符號中)替代字符串。DataDirectory 與 AttachDbFileName結合使用可指示數據文件的相對路徑,容許開發人員建立基於數據庫源的相對路徑(而無需指定完整路徑)的鏈接字符串。 c#

DataDirectory 點的物理位置取決於應用程序的類型。 在此示例中,要附加的 Northwind.mdf 文件位於應用程序的 \app_data 文件夾中。 app

Data Source = .\\SQLExpress;Integrated Security = true ;
User Instance
= true ;
AttachDBFilename
=| DataDirectory | \app_data\Northwind.mdf;
Initial Catalog
= Northwind;

使用 DataDirectory 時,目錄結構中的結果文件的路徑不能高於替代字符串指向的目錄。 例如,若是徹底展開的 DataDirectory 爲 C:\AppDirectory\app_data,則上面顯示的示例鏈接字符串有效,由於它在 c:\AppDirectory 之下。 可是,若是嘗試將 DataDirectory 指定爲|DataDirectory|\..\data ide

相關文章
相關標籤/搜索