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


本文摘自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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...