程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Access數據庫在asp.net程序中相對路徑的解決方法

Access數據庫在asp.net程序中相對路徑的解決方法

編輯:.NET實例教程

好多朋友被Access數據庫在.Net程序中相對路徑的問題困擾,搞得每次移動程序都要去修改web.config
中數據庫連接字符串的數據庫路徑。

好多人的web.config中的寫法如下:


 

<aPPSettings>
<add key="OLEDBCONNECTIONSTRING" value="Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=E:\web\App_Data\Data.mdb)"></add>
</aPPSettings>


程序中這樣寫:


 

MyConn = new OleDbConnection(System.Configuration.ConfigurationManager.APPSettings["OLEDBCONNECTIONSTRING"]);//注釋一下:VS2005和VS2003中的ConfigurationSettings寫法不一樣,具體區別自己查吧

這樣程序運行時經常提示諸如以下的錯誤:
'C:\Windows\system32\~\App_Data\Data.mdb'不是一個有效的路徑。 確定路徑名稱拼寫是否正確,以及是否連接到文件存放的服務器。 Data Source=~\App_Data\Data.mdb
就算用絕對路徑正確,那麼移植程序時還要去修改web.config,所以比較麻煩。

也有在web.config中使用象ASP那樣的Server.MapPath取數據庫路徑的,但web.config不認識Server.MapPath,此方法也行不通。

後來通過摸索、參考其它程序,總結出如下方法,可以方便的移植程序路徑而不必再去修改Access數據庫路徑。

我在web.config中的寫法如下:

<aPPSettings>
<add key="SQLConnString" value="provider=microsoft.jet.oledb.4.0;data source="/>
<add key="dbPath" value="~/App_Data/mydata.mdb"/>
</aPPSettings>
程序中的數據訪問類中我把"SQLConnString"和"dbPath"取出來連接成一個字符串"CONN_STRING_NON_DTC"
public static readonly string CONN_STRING_NON_DTC = System.Configuration.ConfigurationManager.AppSettings["SQLConnString"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.APPSettings["dbPath"]) + ";";
這是VS2005中的寫法
我把CONN_STRING_NON_DTC定義成static readonly是為了使用方便。
好了,這樣就可以隨便移植你的程序而不用關心數據庫的路徑了,一勞永逸啊^_^,適合我這樣的懶人!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved