如何使用访问数据库发布 C# 应用程序

how to publish C# application with the access database

我创建了一个 C# 应用程序,其中 运行 带有 Microsoft Access 数据库,在部署项目并将其安装在 C 驱动器上之后,数据库文件变为只读,并且,如果我将其安装在 D 或其他驱动器上,它工作正常。

如果有人能提供帮助,我们将不胜感激(SIS 是访问数据库文件)问题是我想让它也能在 C 驱动器中工作。

这是我的设置 SIS 是访问文件

这是我使用

的连接字符串
String cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\SIS_DB.accdb;";

你老派了...现在C盘是禁区

Program Data 文件夹用于特定于应用程序的数据 - 或者,对于用户数据,使用您创建的 %AppData% 文件夹为您的应用程序创建一个文件夹,并将此文件夹用于用户数据。

你的问题是你的数据库文件在 %ProgramFiles% 中。它应该在 %AppData%

有两种方法可以解决

1.modify 安装项目。 设置时,请指定f.mdf的路径,确保文件安装到AppData文件夹。

2.copy f.mdf 到 AppData 文件夹。 每次你 运行 你的应用程序,第一件事就是将文件复制到 AppData 文件夹, 您可以在 Main(或 init)方法中添加以下代码,然后重试:

string sourcePath=@"C:\PROGRAM FILES\DEFAULT COMPANY NAME\SETUPER2";
string appDataPath= Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string fileName="F.MDF";
System.IO.File.Copy(sourcePath+"\"+fileName, appDataPath+"\"+fileName ,false);

*1 更好。