2012-05-22 148 views
1

我有一個WinXP應用程序(它在WinXP中完美地工作),我試圖在Win7上安裝它。安裝是很好,但是當我雙擊應用程序加載它,我得到一個消息說:不允許訪問數據庫文件

Access to the database file is not allowed [file path goes here]. 

此刻,我已在連接設置爲:

SqlCeConnection("Data Source=|DataDirectory|/db.sdf") 

我也有嘗試:

SqlCeConnection("Data Source=*|DataDirectory|*db.sdf") 

SqlCeConnection("Data Source=*|DataDirectory|*/db.sdf") 

對此我有不同的錯誤信息:

The file name is not valid 

這究竟是爲什麼?我如何阻止這種情況發生?

回答

2

默認情況下,| DataDirectory |變量將被擴展如下:

  • 對於放置在用戶計算機上的目錄的應用程序,這將是 應用程序的文件(.exe)文件夾。
  • 爲ClickOnce下運行的應用程序,這將是ClickOnce的
  • 創建的Web應用程序的特殊數據文件夾 ,這將是App_Data文件夾

在Windows7中的目錄C:\program files (x86)\yourexefolder不能寫入。 如果您將數據庫安裝在應用程序的子文件夾中或同一文件夾中,則會出現此錯誤。

您應該安裝數據庫到%APPDATA%目錄

例如在C#中,你可以設置DataDirectory路徑以這種方式

string myDataDir = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\yourAppDataFolder"; 

// Set |DataDirectory| value 
AppDomain.CurrentDomain.SetData("DataDirectory",myDataDir); 
+0

幫了我很多.. –

相關問題