首頁  >  文章  >  後端開發  >  asp.net連接Access資料庫相對路徑寫法

asp.net連接Access資料庫相對路徑寫法

伊谢尔伦
伊谢尔伦原創
2016-11-25 09:45:111762瀏覽

Asp.net連接Access資料庫時,通常我們將資料庫連線字符串寫到web.config設定檔中。而連接字符串中的資料庫路徑只能用絕對路徑形式表示,這樣如果要移動程序,就必須要修改web.config 中資料庫連接字串的資料庫路徑,很麻煩。如果寫成相對路徑形式如:~/database/test.mdb 也是不正確的。例如:

 <connectionstrings>
    <add name="Access" connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;data source=~/database/test.mdb" providername="System.Data.OleDb" />
  </connectionstrings>

上面寫法是錯的。

目前常見解決方法有2種:

1、透過使用DataDirectory 關鍵字方法

從Asp.net 2.0 開始有App_Data目錄來專門存放資料文件,它可以用來放Access,SQL Server Express、XML等數據檔。可以把Access資料庫檔案放在App_Data資料夾中,然後使用關鍵字 DataDirectoty來取得路徑。

<connectionstrings>
    <add name="Access" connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;data source=|DataDirectory|test.mdb"  providername="System.Data.OleDb" />
  </connectionstrings>

2、在web.config 檔案中設定兩個字符串

在 web.config 檔案中設定兩個字串,一個是驅動字串,另一個是 Access 資料庫檔案的相對路徑。使用時用 Server.MapPath() 來取得絕對路徑,然後組合出來的連線字串就可以使用了。

<connectionStrings>
    <add name="Access" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;data source={0}"
      providerName="System.Data.OleDb" />
</connectionStrings>
<appSettings>
    <add key="AccessPath" value="~/Database/test.mdb"/>
</appSettings>

後台使用時 代碼如下:

private string GetConnStr()
{
    string connStr = WebConfigurationManager.ConnectionStrings["Access"].ConnectionString;
    connStr = connStr.Replace("{0}", Server.MapPath(WebConfigurationManager.AppSettings["AccessPath"].ToString()));
    return connStr;
}


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn