解决方案一:
在 web.config 中配置 access 数据库教程驱动和数据库文件名称。
请看代码
<appsettings>
<add key=dbdriver value=provider=microsoft.jet.oledb.4.0; data source =/>
<add key=dbname value=company.mdb/>
</appsettings>
在数据库访问层,如 oledbhelper.cs 中获得 access 数据库链接字符串。
/**//// <summary>
/// 从web.config取得数据库联接字符串
/// </summary>
//从配置文件中得到数据库名称
public static readonly string dbname = configurationmanager.appsettings.get(dbname).tostring();
//从配置文件中得到数据库驱动
public static readonly string dbdriver = configurationmanager.appsettings.get(dbdriver).tostring();
//得到数据库连接字符串
private static string dbconnectionstring = dbdriver + httpcontext.current.server.mappath(httpcontext.current.request.applicationpath + /app_data/) + dbname;
//建立数据库连接对象
private static oledbconnection oledbconn = new oledbconnection(dbconnectionstring);
这样设置后,无论在任何子目录,都能通过以上代码正确的访问数据库。
解决方案二:
<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]) + ;;
更多信息请查看IT技术专栏