您可以獲取和使用此代碼
string str = Environment.ExpandEnvironmentVariables("%LOCALAPPDATA%");
string expandedConString = "Data Source=|%LOCALAPPDATA%|\Some Folder\File.ext".Replace("|%LOCALAPPDATA%|", str);
替換預定義的環境變量,順便說一句,在
string str = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
相同的值%LOCALAPPDATA%
環境變量指向不過我覺得這機器是有點笨拙。更好的方法是使用|DataDirectory|
替換字符串。你寫你的連接字符串與標準
"Data Source=|DataDirectory|\Some Folder\File.ext"
然後在您的應用程序,所有的數據訪問代碼更改當前值|DataDirectory|
之前讀取配置設置,並與
string myDBPath = ConfigurationManager.AppSettings["PathToDatabase"].ToString();
AppDomain.CurrentDomain.SetData("DataDirectory", myDBPath);
在這種改變其值方式您的應用程序將更加靈活,並將輕鬆適應您的客戶無疑將構成的不同外部約束。
(當然你的安裝應選擇或配置目錄,你有你的數據庫文件的完全讀/寫權限)
爲了完整
Where is DataDirectory
奇怪這兩個管道,你確認字符串不是| DataDirectory |? – Steve
哦,我確定。我試圖將Access數據庫安裝到| DataDirectory |中但是當應用程序安裝時,它默認對該文件沒有修改權限,並且收到權限錯誤。我讀到這是AppData目錄更好用的,所以我現在讓安裝程序將數據庫移動到該目錄,並且需要對其進行測試。 –