asp.net连接Access数据库相对路径写法

伊谢尔伦
发布: 2016-11-25 09:45:11
原创
1807 人浏览过

Asp.net连接Access数据库时,通常我们将数据库连接字串写到web.config配置文件中。而连接字串中的数据库路径只能用绝对路径形式表示,这样如果要移动程序,就必须要修改web.config 中数据库连接字符串的数据库路径,很麻烦。如果写成相对路径形式如:~/database/test.mdb 也是不正确的。例如:

 <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来获取路径。

<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() 来获取绝对路径,然后组合出来的连接字符串就可以使用了。

<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>
登录后复制

后台使用时 代码如下:

private string GetConnStr()
{
    string connStr = WebConfigurationManager.ConnectionStrings["Access"].ConnectionString;
    connStr = connStr.Replace("{0}", Server.MapPath(WebConfigurationManager.AppSettings["AccessPath"].ToString()));
    return connStr;
}
登录后复制


相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板