2013-05-22 3 views
2

У меня есть приложение C# WinForms, который использует SQL компактный и здесь есть строка подключения к БД:WinForms DataDirectory расположение

<add name="Test.Properties.Settings.TestManagerConnectionString" 
      connectionString="Data Source=|DataDirectory|\Database\TestManager.sdf" 
      providerName="Microsoft.SqlServerCe.Client.3.5" /> 

Как я могу получить путь, что строка подключения указывает на? т.е.: C: \ Users \ name \ AppData ... и т. д.

+0

попробовать это http://stackoverflow.com/questions/6941943/c-sharp-get-file-path-from-connection-string –

+0

Спасибо, но проблема я до сих пор сталкиваюсь в том, что ' AppDomain.CurrentDomain.GetData ("DataDirectory") 'всегда возвращается с' null' –

+0

Также как я могу изменить | DataDirectory | в приведенной выше ссылке на нечто вроде 'connectionString =" Data Source = \ Database \ TestManager.sdf ", так что, когда приложение запускается, он не ищет БД в | DataDirectory | –

ответ

1

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

Если вы хотите обмениваться данными для нескольких пользователей, существует каталог данных All_Users. Я не уверен, как указать его с помощью строки подключения SqlCE.

Update

Here is the answer для определения каталога AppData.

Чтобы установить свойство DataDirectory, вызовите метод AppDomain.SetData. Если вы не установите DataDirectory свойства, следующие стандартные правил будут применяться для доступа к папке базы данных:

  1. Для приложений, которые ставятся в папке на компьютере пользователя, папку базы данных использует приложение папка.
  2. Для приложений, работающих под ClickOnce, папка базы данных использует созданную папку данных .
+0

Я не хочу его перемещать, мне действительно нужен полный путь к нему. C: \ Users \ ... и т. Д. –

+0

А теперь я понимаю. Я думал, что ваш вопрос задал вопрос, как изменить каталог, находящийся под программными файлами. –

Смежные вопросы