Database 发布项目,包括在visual basic中打开数据库每次更新项目的数据库

Database 发布项目,包括在visual basic中打开数据库每次更新项目的数据库,database,vb.net,publish,Database,Vb.net,Publish,我正在用visual basic进行一个项目,其中包括一个数据库。 当我发布项目时,我收到一条错误消息,该消息基本上告诉我,我的数据库无法访问,因为在发布应用程序之前,它最初位于调试文件夹中 我确实为我的问题找到了多种解决方案,但由于不同的原因,没有一种能够奏效 1) 我尝试将数据库添加到我的资源中,然后在代码中将其用作my.Resources.dbName 这里的问题是,当我必须在连接字符串中指定数据源时,我无法使用my.Resources.dbName 在这个场景中,我需要一个替代解决方案来

我正在用visual basic进行一个项目,其中包括一个数据库。 当我发布项目时,我收到一条错误消息,该消息基本上告诉我,我的数据库无法访问,因为在发布应用程序之前,它最初位于调试文件夹中

我确实为我的问题找到了多种解决方案,但由于不同的原因,没有一种能够奏效

1) 我尝试将数据库添加到我的资源中,然后在代码中将其用作my.Resources.dbName 这里的问题是,当我必须在连接字符串中指定数据源时,我无法使用my.Resources.dbName

在这个场景中,我需要一个替代解决方案来解决我可以使用什么连接字符串

当前连接字符串:“Provider=Microsoft.ACE.OLEDB.12.0;数据源=db.accdb;持久安全信息=True”

2) 在安装应用程序的.exe版本后,我试图将数据库放入安装文件夹,但仍然无法运行

3) 我试图将其添加为数据库源,但没有找到将其链接到我的项目的方法

如果你打算以这种方式给我一个解决方案,请分很多步骤,并清楚地解释

我读到的大多数解决方案都与上面的解决方案类似,因此我不必提及它们

此外,我需要数据库保存其记录,因为在第一个解决方案中,每次打开.exe文件时,数据库都是空的

数据库:Microsoft Access VB:Visual Basic 2017/2015


谢谢你花时间和精力来帮助我

使用本地数据库非常简单

第一步是将其添加到解决方案资源管理器中的项目中。对于Access数据库,通常需要在Access中创建数据库并将其保存到Documents文件夹或类似文件夹中,然后右键单击项目或使用“项目”菜单将其作为现有项添加到项目中。当提示将文件复制到项目文件夹时,请执行此操作。干净的数据库现在与其他源文件一起位于项目文件夹中。每当您想要对架构或默认数据进行任何更改时,都可以对该源文件进行更改

通常,您应该将该文件的
Copy to Output Diorectory
属性从
Copy Always
更改为
Copy if Newer
。发生的情况是,在生成时,该源文件将与EXE一起复制到输出文件夹中,并且应用程序运行时连接到该副本。默认情况下,每次生成时都会创建一个副本,这意味着在调试器中进行代码更改并运行项目时,在以前的调试运行中对数据所做的任何更改都将丢失。通过设置
Copy if Newer
,只有在对源数据文件本身进行更改时,才会覆盖调试输出文件夹中的副本

发布项目时,将创建发布版本。在Release output文件夹中创建干净源数据文件的副本,这是与Release EXE一起部署的。调试数据库是完全无关的。因为发布输出是从源文件创建的,所以它不受测试时调试副本中的任何混乱的影响。只要将数据库正确地添加到项目中,就没有问题要解决了