之前項目用的數據庫是mssql,因此把數據庫字符串寫在了web.config中,後來客戶要求用access,所以直接在web.config中改了連接字符串( 連接用了直接路徑)
現在突然想到要把數據庫連接字符串改為相對路徑,但是如果用server.mappath的話現在麻煩,要在很多文件中改,
有沒有辦法直接改web.config中的連接字符串,而獲得的是相對路徑,也就是說客戶不必知道服務器上存放web項目的具體直接路徑?
-----------------------------------
在多個文件中引用數據庫連接字符串本身就是一個錯誤,不過既然錯誤已無法挽回,你仍然可以在web.config中設置Access數據庫的相對路徑,只需用~號來代替當前web應用程序的根路徑即可,比如你的數據庫在當前web應用程序的database文件夾中,你可以這樣在web.config中設置數據庫路徑:
<appSettings>
<add key="dbPath" value="~/database/mydb.mdb"/>
</appSettings>
~這個符號不會被發送到客戶端,沒有所謂浏覽器或IIS支持不支持的問題,用Server.MapPath()或Response.Redirect()方法時,它會自動將~號轉換為相應的web應用程序路徑,而不是把它直接發送到客戶端,在客戶端浏覽器中用~號顯然是不行的。