7

Итак, как описано on this msdn page, когда вы определяете строку подключения для SQL Server Compact 3.5, вы можете использовать макрос «Каталог данных», например:макрос «Каталог данных SQL Server Compact» в строке подключения - требуется больше информации

this msdn page цитата из:

данных Поддержка Справочник
SQL Server Compact 3.5 теперь поддерживает макрос каталогов данных. Это означает, что если вы добавите строку | DataDirectory | (заключен в символах трубопровода) в путь к файлу, он будет решать путь к базе данных.

Например, рассмотрим строку подключения:

"Data Source = C: \ Program Files \ MyApp \ Mydb.sdf"

При использовании каталога данных, вы можете вместо этого использовать следующую строку соединения:

"Источник данных = | DataDirectory | \ Mydb.sdf"

для получения дополнительной информации см Как Развертывание SQL Server Compact 3.5 базы данных с приложением.

Однако ссылка «для получения дополнительной информации» на msdn на самом деле не дает больше информации.

Так что мой вопрос:

Как работает | каталог данных | макро переводить во время выполнения? Для приложений WinForm, похоже, просто указывается местонахождение исполняемого файла. Или это сложнее?

ответ

7

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

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

Пожалуйста, ознакомьтесь с этой ссылке: http://msdn.microsoft.com/en-us/library/aa478948.aspx

| DataDirectory | часть строки подключения указывает, что файл MDF находится в каталоге App_Data.

+1

Спасибо Джо, но это немного сложнее, чем это. Его довольно очевидно, что App_data будет использоваться для веб-приложений, что менее очевидно, как это может работать для приложений Windows. например, см. метод AppDomain.SetData, упомянутый Сашей. Кроме того, Saluce, спасибо за редактирование. – codeulike