之前项目用的数据库是mssql,因此把数据库字符串写在了web.config中,后来客户要求用access,所以直接在web.config中改了连接字符串( 连接用了直接路径)现在突然想到要把数据库连接字符串改为相对路径,但是如果用server.mappath的话现在麻烦,要在很多文件中改,
有没有办法直接改web.config中的连接字符串,而获得的是相对路径,也就是说客户不必知道服务器上存放web项目的具体直接路径?很急!
解决忙上给分

解决方案 »

  1.   

    在多个文件中引用数据库连接字符串本身就是一个错误,不过既然错误已无法挽回,你仍然可以在web.config中设置Access数据库的相对路径,只需用~号来代替当前web应用程序的根路径即可,比如你的数据库在当前web应用程序的database文件夹中,你可以这样在web.config中设置数据库路径:
      <appSettings>
    <add key="dbPath" value="~/database/mydb.mdb"/>
      </appSettings>
      

  2.   

    写绝对路径不行吗?
    直接连就行了
    不用 Server.MapPath 了
    不是更方便了
      

  3.   

    webdiyer(陕北吴旗娃) 那方法可行不哦?
    以前没试过,觉得没办法解决,除非有个单独的数据操作类,这样改起来还不算麻烦如果楼主测试上面的方法可行的话,别忘了说一声哈,谢谢!
      

  4.   

    to  vivianfdlpw() :你有没有自己试过?如果没有试过怎么就知道是错误的呢?我可以测试过才发上来的!这里有和楼主一样的问题:
    http://community.csdn.net/Expert/topic/4420/4420209.xml?temp=.3158533
      

  5.   

    ~这个符号不会被发送到客户端,没有所谓浏览器或IIS支持不支持的问题,用Server.MapPath()或Response.Redirect()方法时,它会自动将~号转换为相应的web应用程序路径,而不是把它直接发送到客户端,在客户端浏览器中用~号显然是不行的。