修改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內容
<configuration>
<appSettings>
<add key="ConnectString" value="URI=file:C:\\PCD\\NewMedia\\NewMediaTest1\\bin\\Debug\\test.db3,version=3" />
</appSettings>
</configuration>