本文摘自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 core静态文件的使用教程
asp.net core razor页面路由的详细介绍
介绍asp.net中的mvc如何从控制器传递数据到视图
asp.net+jquery如何实现省市二级联动功能的方法详解
asp.net core 返回 json datetime 格式
防止sql注入的asp.net方法实例解析
分享asp.net core在开发环境中保存机密(user secrets)的实例
一段asp.net des加密解密的代码
asp.net下的中文分词检索工具分享
分享asp.net学习笔记(11)webpages php
更多相关阅读请进入《asp.net》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » asp.net连接Access数据库相对路径写法