本文摘自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与asp.net的区别与联系
asp.net mvc实现404跳转的代码实例
动态生成html表单的asp.net方法代码示例
asp.net实现简单数字验证码实例
asp.net动态输出404 http状态代码
asp.net利用反射实现给model类赋值的示例代码分析
asp.net+jquery如何实现省市二级联动功能的方法详解
操作 asp.net web api 的实例教程
asp.net使用entityframeworkcore codefrist
asp.net反射简单应用实例代码
更多相关阅读请进入《asp.net》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » asp.net连接Access数据库相对路径写法