c# - 如何为 C# 添加数据库文件的相对路径

标签 c# ms-access installation special-folders

我有一个 C# 项目,并且通过新数据源选项添加了一个 Access 文件 (.mdb)。

因此它的副本始终位于我的项目文件夹中。现在我的连接字符串使用该路径(C:\Users\PC\Visual Studio\Projects....)。如果我要将项目移动到另一个目录或计算机,我必须手动更改路径。但如果我使应用程序可安装,这可能是不可能的。

如何使数据库路径相对于项目?

最佳答案

配置安装程序时,您可以指定 .mdb 文件将转到哪个文件夹。您可以选择将其放在与应用程序的 .exe 文件相同的文件夹中,或者放在 AppData 下的应用程序文件夹中,或者用户的主文件夹中,或者任何其他位置你喜欢。正如您向安装程序指定它一样,您可以使用 Environment.SpecialFolder 在代码中指定它。枚举。

问题在于,在开发过程中,您的 .mdb 文件通常位于项目文件夹的根目录中,这与上述内容都不相符。

我所做的是,首先,在项目选项中,我确保当我的应用程序在开发过程中启动时,它始终在我的项目的根文件夹中启动,而不是在 ./bin/Debug 文件夹。

然后,每次启动我的应用程序时,我都会检查我的 .mdb 文件是否位于应用程序的当前目录中,如果是,那么这一定是开发运行,所以我使用它。

否则,这必须是部署运行,因此我使用 SpecialFolder 枚举来获取安装程序应放置 .mdb 文件的文件夹。

关于c# - 如何为 C# 添加数据库文件的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32978866/

相关文章:

c# - 列出 Windows Azure Blob 存储容器中的目录

C#MVC : User Password Reset Controller: Issues with email addresses as usernames

ms-access - 有没有办法调用 VBA(MS Access 2002 或 2003)中任何控件的 BeforeUpdate 事件过程?

java - Inno 安装程序 : How to check if JRE is present and prompt to download if not?

c# - 如何使用 ImmutableList<> 而不是 List<> 来获得线程安全?

c# - 是否可以格式化/转换 13 个月日历(公历)的日期

sql-server - 有没有办法在后台运行 MS Access 查询?

sql - 不带 FROM 子句的 SELECT

dll - 如何安装 DotNetZip?

windows - 检查是否安装了 WMIC,将数据从批处理文件写入文件