ACCESS数据库在.net程序中相对路径
ACCESS數據庫在.net程序中相對路徑
ACCESS数据库在.net程序中相对路径
${i18n.author} / 佚名
${i18n.comefrom} 互联网
(${i18n.scrollupNote})
|
好多朋友被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是为了使用方便。 好了,这样就可以随便移植你的程序而不用关心数据库的路径了,一劳永逸啊。
|
|
好多朋友被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是為了使用方便。 好了,這樣就可以隨便移植你的程序而不用關心數據庫的路徑了,一勞永逸啊。
|
meteor ${i18n.uploadTime} [2009-11-5 17:24:02] |
Loading... |
[
${i18n.returnTop}]
${i18n.otherArticle}