在使用Install Shield installer在用户计算机上部署时,如何将MS Access数据库文件附加到c#应用程序?

在使用Install Shield installer在用户计算机上部署时,如何将MS Access数据库文件附加到c#应用程序?,c#,.net,database,ms-access,installshield,C#,.net,Database,Ms Access,Installshield,我正在为一些用户开发一个c#应用程序作为大学录取系统。用户必须管理附加到c应用程序的MS Access数据库文件中的记录。现在我正在为我的应用程序制作一个安装程序,以便将其安装到用户的机器上。我所经历的解决方案是: 我想要的是,当应用程序安装到用户的计算机上时,MS Access数据库文件也应该附加到应用程序。我需要做什么?有没有初学者的方法或任何指南 已更新 我已经手动创建了数据库文件,并立即将该文件放在bin文件夹中(并且希望用户也能这样做)。我只是想以某种方式将其附加到用户机器上的应用程

我正在为一些用户开发一个c#应用程序作为大学录取系统。用户必须管理附加到c应用程序的MS Access数据库文件中的记录。现在我正在为我的应用程序制作一个安装程序,以便将其安装到用户的机器上。我所经历的解决方案是:

我想要的是,当应用程序安装到用户的计算机上时,MS Access数据库文件也应该附加到应用程序。我需要做什么?有没有初学者的方法或任何指南

已更新
我已经手动创建了数据库文件,并立即将该文件放在bin文件夹中(并且希望用户也能这样做)。我只是想以某种方式将其附加到用户机器上的应用程序中,这样无论何时用户都可以管理记录,因此记录都应该能够顺利地添加/编辑/更新/删除。

您应该使用特定的数据库管理器,它会删除ms access文件的版本 这些是oledb的一些连接字符串,您也可以使用odbc 2003年:Provider=Microsoft.Jet.OLEDB.4.0;数据源=c:\myDb; 扩展属性=悖论5.x

2007:Provider=Microsoft.ACE.OLEDB.12.0;数据源=C:\myFolder\myAccessFile.accdb; 持久安全信息=False


让安装程序创建\将数据库文件写入目标计算机上的指定目录(例如AppDataFolder)

应用程序启动时,测试此目录是否存在Access数据库文件。如果找到,请创建连接字符串(有关帮助,请参阅ConnectionStrings.com)。考虑将连接字符串存储为应用程序的一个属性,一旦您创建了应用程序,这样您就不必在下次启动时运行相同的代码。

如果Access数据库文件不在您的安装程序应该写入的目录中(或者您的连接字符串失败),请考虑提示用户为您定位文件(通过OpenFieldLax或类似)。


请注意,让安装程序将数据库文件写入Program Files目录可能不是一个好主意,因为最终用户需要能够修改数据库(在Vista+上,由于UAC和权限,这可能会有问题)。

我无法给出数据库文件的绝对路径。这将在用户的机器上产生错误。如果可以,请提供更多信息或任何教程。您可以在用户计算机上生成绝对路径,并将其用作数据源。有什么问题?是一个例子。如果快捷方式将在用户的计算机上创建呢?我的数据库的响应是否与部署前的响应相同?我的数据库文件现在在bin文件夹中。+1。普通用户无法对程序文件进行写访问。OP的情况正是AppData文件夹的用途。事实上,ic无法得到您答案的第一行。请解释一下?最终用户会起诉Windows7,现在我的数据库文件在我的应用程序的bin文件夹中,我希望它也在用户机器上。但现在我看到,当在用户计算机上创建快捷方式时,我的数据库文件将如何响应?您的安装程序不应将access数据库写入InstallDirectory,因为Windows Vista及更高版本上的目录将受到写保护。相反,您应该将数据库文件安装到AppData文件夹中。在C#应用程序中,不要假定数据库位于bin文件夹或应用程序目录中;而是在AppData文件夹中查找。快捷方式启动应用程序,而不是数据库,对吗?快捷方式不应该与数据库文件的位置有任何关系,也不应该关心数据库文件的位置。您需要更改您的应用程序代码,以避免数据库与应用程序可执行文件位于同一目录中。好的,那么我现在是否应该让我的数据库文件位于bin文件夹中?我的意思是说安装shield会自动将我的数据库文件保存到AppDataFolder吗?