在配置文件中使用相对路径连接数据库文件
在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 数据提供程序。
懒惰,是一个通病。
努力,必会成为一种习惯。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架