本文摘自PHP中文网,作者伊谢尔伦,侵删。
Asp.net连接Access数据库时,通常我们将数据库连接字串写到web.config配置文件中。而连接字串中的数据库路径只能用绝对路径形式表示,这样如果要移动程序,就必须要修改web.config 中数据库连接字符串的数据库路径,很麻烦。如果写成相对路径形式如:~/database/test.mdb 也是不正确的。例如:1 2 3 | <connectionstrings>
<add name= "Access" connectionstring= "Provider=Microsoft.Jet.OLEDB.4.0;data source=~/database/test.mdb" providername= "System.Data.OleDb" />
</connectionstrings>
|
上面写法是错误的。
目前常见解决方法有2种:
1、通过使用 DataDirectory 关键词方法
从Asp.net 2.0 开始有App_Data目录来专门存放数据文件,它可以用来放Access,SQL Server Express、XML等数据文件。可以把Access数据库文件放在App_Data文件夹中,然后使用关键词 DataDirectoty来获取路径。
1 2 3 | <connectionstrings>
<add name= "Access" connectionstring= "Provider=Microsoft.Jet.OLEDB.4.0;data source=|DataDirectory|test.mdb" providername= "System.Data.OleDb" />
</connectionstrings>
|
2、在web.config 文件中设置两个字串
在 web.config 文件中设置两个字串,一个是驱动字符串,另一个是 Access 数据库文件的相对路径。使用时用 Server.MapPath() 来获取绝对路径,然后组合出来的连接字符串就可以使用了。
1 2 3 4 5 6 7 | <connectionStrings>
<add name= "Access" connectionString= "Provider=Microsoft.Jet.OLEDB.4.0;data source={0}"
providerName= "System.Data.OleDb" />
</connectionStrings>
<appSettings>
<add key= "AccessPath" value= "~/Database/test.mdb" />
</appSettings>
|
后台使用时 代码如下:
1 2 3 4 5 6 | private string GetConnStr()
{
string connStr = WebConfigurationManager.ConnectionStrings[ "Access" ].ConnectionString;
connStr = connStr.Replace( "{0}" , Server.MapPath(WebConfigurationManager.AppSettings[ "AccessPath" ].ToString()));
return connStr;
}
|
相关阅读 >>
asp.net中webform的生命周期相关讲解
asp.net core razor页面路由的详细介绍
asp.net core简单介绍教程(1)_实用技巧
asp.net core应用中与第三方ioc/di框架的整合
asp.net mvc5请求处理管道和生命周期的详细教程
asp.net中有关config文件的读写功能讲解
asp.net core mvc应用程度中如何读取当前url请求参数(querystring)的值?
解析asp.net如何使用session
asp.net中healthmonitor属性的用法教程
高性能缓存系统(memcached)的实例介绍
更多相关阅读请进入《asp.net》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » asp.net连接Access数据库相对路径写法