7

Tak, zgodnie z opisem on this msdn page, podczas definiowania ciągu połączenia dla SQL Server Compact 3.5 można użyć makra "Katalog danych", jak poniżej:Makro programu SQL Server Compact "Data Directory" w ciągu połączenia - potrzebne są dodatkowe informacje

cytat z this msdn page:

dane potwierdzają katalog
SQL Server Compact 3.5 obsługuje makra danych katalogowych. Oznacza to, że jeśli dodasz ciąg | DataDirectory | (zawarte w symbolach potoków) do ścieżki pliku, rozwiąże ścieżkę do bazy danych.

Na przykład, rozważmy ciąg połączenia:

"Source = c: \ program files \ MojaAplikacja \ Mydb.sdf"

Przy użyciu danych katalogowych, można zamiast tego użyć następujący ciąg połączenia:

"Data Source = | DataDirectory | \ Mydb.sdf"

aby uzyskać więcej informacji, zobacz Jak: Wdrażanie SQL Server Compact 3.5 bazy danych z poziomu aplikacji.

Jednak link "więcej informacji" na msdn nie dostarcza już więcej informacji.

Więc moje pytanie brzmi:

Jak działa | Katalog danych | makro przetłumaczyć w czasie wykonywania? W przypadku aplikacji WinForm wydaje się po prostu podać lokalizację pliku wykonywalnego. Czy może jest to bardziej skomplikowane?

Odpowiedz

7

Aby ustawić właściwość DataDirectory, należy wywołać metodę AppDomain.SetData. Jeśli nie ustawić właściwość DataDirectory następujące domyślne reguły będą stosowane do uzyskania dostępu do folderu bazy danych:

  • W przypadku aplikacji, które są umieszczone w folderze na komputerze użytkownika, folder Database używa aplikacja folder.
  • Dla aplikacji, które są uruchomione w ClickOnce, folder bazy danych używa określonego folderu danych, który został utworzony .
0

Przejrzyj ten link: http://msdn.microsoft.com/en-us/library/aa478948.aspx

The | DataDirectory | część ciągu połączenia określa, że ​​plik MDF znajduje się w katalogu App_Data.

+1

Dzięki Joe, ale jest to nieco bardziej skomplikowane. Jest całkiem oczywiste, że App_data byłaby używana w aplikacjach internetowych, a jej mniej oczywiste, jak to może działać w aplikacjach Windows. np. zobacz metodę AppDomain.SetData, o której wspomniał Sasha. Również Saluce, dziękuję za edycję. – codeulike

Powiązane problemy