Как опубликовать приложение C# с базой данных доступа

Я создал приложение C#, которое работает с Microsoft Access базы данных и после того, как я развернул проект и установил его на C диск базы данных файл становится только для чтения, и, если я установлю его на D или другой диск работает нормально.

Пожалуйста, если кто-то может помочь, это ценится (SIS - это файл базы данных доступа), проблема в том, что я хочу, чтобы он работал в C диск тоже.

это моя настройка SIS это файл доступа это моя настройка SIS это файл доступа

И это строка подключения, которую я использую

String cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\SIS_DB.accdb;";

2 ответа

Решение

Ваша проблема в том, что файл вашей базы данных находится в%ProgramFiles%. Должно быть в%AppData%

Есть два способа решения

1. Изменить проект установки. когда вы выполняете настройку, вы должны указать путь к f.mdf, убедитесь, что файл будет установлен в папку AppData.

2. скопируйте 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 лучше.

Вы старая школа... Вождение в эти дни запрещено.

Используйте либо папку Program Data для данных конкретного приложения, либо, что касается пользовательских данных, папку %AppData%, где вы создаете папку для своего приложения и используете эту папку для данных пользователя.

Другие вопросы по тегам