在配置文件中使用相对路径连接数据库文件

在Config文件里面配置数据库连接字符串为相对路径
一.背景  

    在使用Access数据库文件的时候(也可以是其他的数据库文件,注意此处是“数据库文件”),我们经常无法确定项目安装之后的绝对路径,虽然可以在程序运行的时候通过Application的一些属性取得,但是很多时候还是不方便。


二.相对路径形式的数据库连接字符串的书写方式,如下:

1
2
3
<add name="HomeBookConnectionString"
      connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Resources\HomeBook.accdb;Persist Security Info=True"
      providerName="System.Data.OleDb" />

     其中 "|DataDirectory|\Resources\HomeBook.accdb;Persist Security Info=True”则是相对路径的写法,指向[应用程序文件夹]下面的"Resources”文件夹下面的“HomeBook.accdb”数据库文件。
个人理解:DataDirectory是指向应用程序exe文件所在目录的。
三.注意事项
   1.使用 DataDirectory 时,目录结构中的结果文件的路径不能高于替代字符串指向的目录。 例如,如果完全展开的"DataDirectory”为 "C:\HomeBook”,则上面的连接字符串有效,因为"Resources\HomeBook.accdb”在"C:\HomeBook"下。但是如果尝试将"DataDirectory”指向为"|DataDirectory|\..\data”则会引发一个ArgumentException异常,因为"data”不在"HomeBook”文件夹下。
   2.DataDirectory 不是 System.Data.OleDb 独占的。 它还可以用于 System.Data.SqlClient和 System.Data.Odbc .NET 数据提供程序。

posted @   dongger  阅读(5304)  评论(2编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示