SqlServerCe имя файла недействительно - PullRequest
0 голосов
/ 08 марта 2011

Я создаю надстройку для outlook 2010 с использованием VS 2010. Я искал способ локального хранения данных и увидел, что группа людей предлагает Sql CE. Я попробовал это и продолжал сталкиваться с этой ошибкой Неверное имя файла: Data Source = | DataDirectory | \ data.sdf

string conString = Properties.Settings.Default.dataConn;

        SqlCeConnection dbConn = new SqlCeConnection(conString);

        try
        {
            using (SqlCeConnection con = new SqlCeConnection(conString))
            {
                con.Open();
            }
        }
        catch(Exception e)
        {
            MessageBox.Show(e.ToString());
        }

Я использовал туториал, показанный здесь: http://www.dotnetperls.com/sqlce

Любая помощь будет оценена!

Спасибо.

1 Ответ

0 голосов
/ 09 марта 2011

| DataDirectory |это специальная переменная в строке подключения, которая раскрывается во время выполнения.Он расширен следующим образом:

  - For applications placed in a directory on the user machine, this will be the app's (.exe) folder.
  - For apps running under ClickOnce, this will be a special data folder created by ClickOnce
  - For Web apps, this will be the App_Data folder

Это не работает для вашего плагина Outlook.Я предполагаю, что контекст, в котором он работает, не устанавливает для него значения.Вы можете попробовать либо указать полный путь к базе данных в строке подключения (заменив | DataDirectory |), либо установить значение DataDirectory в домене приложения динамически, используя следующую команду:

  AppDomain.CurrentDomain.SetData("DataDirectory", newpath)

Посмотрите на Работа с локальными базами данных для получения дополнительной информации.

...