之前项目用的数据库是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应用程序路径,而不是把它直接发送到客户端,在客户端浏览器中用~号显然是不行的。