修改APP.Config內容

修改APP.Config內容

因為開發專案,Local Db採用sqlite,將連接字串定義在ConnectString

設定App.config內容如下

<configuration>
	<appSettings>		
		<add key="ConnectString" value= "URI=file:test.db3,version=3"/>		
	</appSettings>

</configuration>

可是當包成安裝檔要執行時,在讀取資料庫時發生錯誤,必須指定資料庫檔案絕對位置

所以想要修改App.config內容,動態指定存放資料庫的資料夾

修改如下:

        /// Saves the config exe.config.
        /// </summary>
        /// <param name="myvalue">The myvalue.</param>
        public static void SaveConfig(params string[] myvalue)
        {
            int i;
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(Application.ExecutablePath + ".config");//exe.config修改            
            XmlNode XN = xmlDoc.SelectSingleNode("/configuration/appSettings");
            for (i = 0; i < myvalue.Length; i++)
            {
                XN.ChildNodes.Item(i).Attributes[1].Value = myvalue[i];
                
            }
            //xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);//vshost.exe.config修改
            xmlDoc.Save(Application.ExecutablePath + ".config");//exe.config修改            
            xmlDoc = null;
        }

在登入的時候就指定存放資料庫的資料夾,預設為應用程式執行檔路徑

        {
            FileInfo fi = new FileInfo(Application.ExecutablePath);
            string[] DBPath = new string[] { "URI=file:" + Application.ExecutablePath.Replace(fi.Name, "").Replace("\\", "\\\\") + "test.db3,version=3" };
            SaveConfig(DBPath);
            
        }

修改後的.exe.config內容

pic2

<configuration>
  <appSettings>
    <add key="ConnectString" value="URI=file:C:\\PCD\\NewMedia\\NewMediaTest1\\bin\\Debug\\test.db3,version=3" />
  </appSettings>
</configuration>