asp.net连接Access数据库相对路径写法
程序员文章站
2022-05-20 21:46:15
...
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; }
推荐阅读
-
Asp.net备份还原SQLServer数据库及压缩Access数据库
-
JDBC连接Access数据库的几种方式介绍
-
Java Web项目中连接Access数据库的配置方法
-
.net(C#数据库访问) Mysql,Sql server,Sqlite,Access四种数据库的连接方式
-
java访问数据库被拒绝,不能连接数据库ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
-
C# 调用Access数据库关于like模糊查询的写法
-
asp.net 数据库备份还原(sqlserver+access)
-
asp.net 获取数据库连接字符串
-
PHP连接操作access数据库实例
-
ASP.NET数据库编程之Access连接失败