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

來源:互聯網
上載者:User
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;}
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.