asp.net中web.config保存(Access)数据库连接字符串的三种方法

来源:互联网 发布:直角坐标机械手编程 编辑:程序博客网 时间:2024/06/06 02:17

网上流行的方法主要有两种:

  一种是通过使用 DataDirectory 目录的方法,但是 access 文件必须放在 ASP.NET 的特殊目录中,如 app_data ;

<addname="access"connectionString="Provider=Microsoft.Jet.Oledb.4.0;
datasource=|DataDirectory|db1.mdb"/>

  另外一种方法则比较灵活,具体方法是:在 web.config 文件中保存两个字符串,一个是驱动字符串,另一个是 access 文件的相对路径;

  使用时用 Server.MapPath 来获取绝对路径然后组合出来的连接字符串就可以使用了;

 <addname="access"connectionString="Provider=Microsoft.Jet.Oledb.4.0;datasource="/>
 <addname="accessfile"connectionString="~/App_Data/db1.mdb"/>

第三种在web.config中使用象ASP那样的Server.MapPath取数据库路径但web.config不认识Server.MapPath,此方法致使程序无法调试,行不通。如下方法,可以方便的移植程序路径而不必再去修改ACCESS数据库路径。在web.config中的写法如下:<appSettings><add key=ConnStr value=provider=microsoft.jet.oledb.4.0;data source=/><add k

在web.config中使用象ASP那样的Server.MapPath取数据库路径
但web.config不认识Server.MapPath,此方法致使程序无法调试,行不通。

如下方法,可以方便的移植程序路径而不必再去修改ACCESS数据库路径。

在web.config中的写法如下:

<appSettings>
<add key="ConnStr" value="provider=microsoft.jet.oledb.4.0;data source="/>
<add key="dbPath" value="/AppData/mydata.mdb"/>
</appSettings>

程序中的数据访问类中我把"ConnStr"和"dbPath"取出来再连接成一个字符串
代码如下:

/// <summary>
  /// (静态)返回数据库连接串。
  /// </summary>
  protected static string GetConnString()
  { return 
System.Configuration.ConfigurationSettings.AppSettings["ConnStr"]+ System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["DataPath"])+";";
  }