网上流行的方法主要有两种:
一种是通过使用 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"])+";";
}