如何使用访问数据库发布 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 更好。
我创建了一个 C# 应用程序,其中 运行 带有 Microsoft Access
数据库,在部署项目并将其安装在 C
驱动器上之后,数据库文件变为只读,并且,如果我将其安装在 D
或其他驱动器上,它工作正常。
如果有人能提供帮助,我们将不胜感激(SIS 是访问数据库文件)问题是我想让它也能在 C
驱动器中工作。
这是我使用
的连接字符串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 更好。