广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Access数据库在asp.net程序中相对路径的解决方法

    2018-04-04 08:34:39 次阅读 稿源:互联网
    广告

      好多朋友被ACCESS数据库在.net程序中相对路径的问题困扰,搞得每次移动程序都要去修改web.config
      中数据库连接字符串的数据库路径。

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

      
       

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

      Source=E:webApp_DataData.mdb)"></add>
      </appSettings>

      
      程序中这样写:

      
       

      MyConn = new OleDbConnection(System.Configuration.ConfigurationManager.AppSettings["OLEDBCONNECTIONSTRING"]);//注释一下:VS2005和VS2003中的ConfigurationSettings写法不一样,具体区别自己查吧

      这样程序运行时经常提示诸如以下的错误:
      'C:WINDOWSsystem32~App_DataData.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 Data Source=~App_DataData.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是为了使用方便。
      好了,这样就可以随便移植你的程序而不用关心数据库的路径了,一劳永逸啊^_^,适合我这样的懒人!

      http://www.cnblogs.com/wjj/archive/2006/11/22/568265.html

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告