2013-01-25 65 views
0

我正在編寫一個表單數據庫程序。 我需要手動讀取數據,爲此,我認爲-after長期的研究 - 這是解決我的數據庫的最佳方法:發佈/安裝後手動地址數據庫

con = new System.Data.SqlServerCe.SqlCeConnection(); 
String connectionString = "Data Source=|DataDirectory|\\Database1.sdf"; 
String executable = System.Reflection.Assembly.GetExecutingAssembly().Location; 
String path = (System.IO.Path.GetDirectoryName(executable)); 
AppDomain.CurrentDomain.SetData("DataDirectory", path); 
con.ConnectionString = connectionString;//"Data Source=C:\\Users\\Name\\Documents\\Databases\\Visual 2012\\Database1.sdf"; 
con.Open(); 

這個作品在可視化編輯器,但後,釋放了一個程序,該程序安裝會發出錯誤信息,因爲安裝的文件夾中沒有數據庫。 (安裝後的connectionString目標C:\Users\Tac\AppData\Local\Apps\2.0\9E0GCT8K.WVE\KYYL0ERB.678\Program並沒有數據庫。

有人可以幫我一個很好的想法,如何使解決工作安裝後?

+0

您需要創建** **一個空數據庫,無論是安裝在,或者當您的應用程序第一次運行時。 –

回答

0

如果不使用設置DataDirectory SetData,它將檢查的位置之一是可執行文件的目錄。

你可以在你的安裝程序中包含數據庫(我猜是空的),並將其配置爲安裝在與可執行文件相同的目錄中。

或更好st在Windows中使用其中一個特殊文件夾。

AppDomain.CurrentDomain.SetData("DataDirectory", Environment.SpecialFolder.ApplicationData); 

您也可以在安裝程序配置中指定此文件夾。 看看這個link對特殊文件夾的詳細信息和文件系統編輯器

+0

你能告訴我如何配置它被安裝在一個特殊的目錄? :) – Tac

+0

@ user2009820這可能會爲您創建問題,因爲如果將其放置在自定義目錄中,則會出現權限問題。可能會更好地把它ApplicationData或任何其他特殊文件夾。我修改了我的答案。 – scartag