C # - Как установить базу данных в каталог AppData? - PullRequest
0 голосов
/ 02 июля 2018

Я должен установить приложение окна формы и сохранить базу данных в каталоге AppData. Но я не смог установить правильный путь к базе данных в app.confing. Я нашел ответ на StackOverflow и попробовал следующее.

 <connectionStrings>
   <add name="Default" connectionString="Driver={Microsoft Access Driver 
    (*.mdb)};AttachDbFileName=|DataDirectory|\HamaraPaisa.mdb" 
    providerName="System.Data.OleDb" />
 </connectionStrings>

И в моем файле Program.cs:

  static class Program
   {
      static void Main()
      {
       Application.EnableVisualStyles();
       Application.SetCompatibleTextRenderingDefault(false);
       AppDomain.CurrentDomain.SetData("DataDirectory", 
       Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
       Application.Run(new Form1());
      }
   }

Но я все еще получаю "ссылка на объект не установлена ​​на экземпляр объекта" исключение, потому что я не подключен к базе данных.

1 Ответ

0 голосов
/ 02 июля 2018

Если вы используете драйвер ODBC для открытия базы данных Microsoft Access, тогда правильная строка подключения будет

OdbcConnection cn = new OdbcConnection(@"Driver={Microsoft Access Driver (*.mdb)};
                                         Dbq=|DataDirectory|\HamaraPaisa.mdb");

Если вы используете библиотеки OleDb, вы должны написать строку подключения как

OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.ACE.OleDb.12.0;  
                                           Data Source=|DataDirectory|\HamaraPaisa.mdb");

или, если у вас 32-битное приложение и старый (до доступа 2007) файл MDB, вы можете использовать

 OleDbConnection cn = new OleDbConnection(@"Provider=Provider=Microsoft.Jet.OLEDB.4.0;  
                                            Data Source=|DataDirectory|\HamaraPaisa.mdb");

Однако я настоятельно рекомендую вам создать папку личных данных в Environment.SpecialFolder.ApplicationData и не добавлять другой файл в уже переполненную папку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...