讀取並修改App.config檔案例項
1. 向專案新增app.config檔案:
右擊專案名稱,選擇“新增”→“新增新建項”,在出現的“新增新項”對話方塊中,選擇“新增應用程式配置檔案”;如果專案以前沒有配置檔案,則預設的檔名稱為“app.config”,單擊“確定”。出現在設計器檢視中的app.config檔案為:
在專案進行編譯後,在bin\Debuge檔案下,將出現兩個配置檔案(以本專案為例),一個名為“JxcManagement.EXE.config”,另一個名為“JxcManagement.vshost.exe.config”。第一個檔案為專案實際使用的配置檔案,在程式執行中所做的更改都將被儲存於此;第二個檔案為原始碼“app.config”的同步檔案,在程式執行中不會發生更改。
2. connectionStrings配置節:
請注意:如果您的SQL版本為2005 Express版,則預設安裝時SQL伺服器例項名為localhost\SQLExpress,須更改以下例項中“Data Source=localhost;”一句為“Data Source=localhost\SQLExpress;”,在等於號的兩邊不要加上空格。
<!--資料庫連線串-->
providerName="System.Data.SqlClient" />
3. appSettings配置節:
appSettings配置節為整個程式的配置,如果是對當前使用者的配置,請使用userSettings配置節,其格式與以下配置書寫要求一樣。
<!--進銷存管理系統初始化需要的引數-->
4.讀取與更新app.config
對於app.config檔案的讀寫,參照了網路文章:http://www.codeproject.com/csharp/ SystemConfiguration.asp標題為“Read/Write App.Config File with .NET 2.0”一文。
請注意:要使用以下的程式碼訪問app.config檔案,除新增引用System.Configuration外,還必須在專案新增對System.Configuration.dll的引用。
4.1 讀取connectionStrings配置節
///
///依據連線串名字connectionName返回資料連線字串
///
///
///
private static string
GetConnectionStringsConfig(string connectionName)
{
string
connectionString =
ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();
Console.WriteLine(connectionString);
return connectionString;
}
4.2 更新connectionStrings配置節
///
///更新連線字串
///
///連線字串名稱
///連線字串內容
///資料提供程式名稱
private static void
UpdateConnectionStringsConfig(string newName,
string newConString,
string newProviderName)
{
bool isModified = false;
//記錄該連線串是否已經存在
//如果要更改的連線串已經存在
if
(ConfigurationManager.ConnectionStrings[newName] != null)
{
isModified = true;
}
//新建一個連線字串例項
ConnectionStringSettings
mySettings =
new ConnectionStringSettings(newName, newConString,
newProviderName);
// 開啟可執行的配置檔案*.exe.config
Configuration config
=
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// 如果連線串已存在,首先刪除它
if (isModified)
{
config.ConnectionStrings.ConnectionStrings.Remove(newName);
}
//
將新的連線串新增到配置檔案中.
config.ConnectionStrings.ConnectionStrings.Add(mySettings);
//
儲存對配置檔案所作的更改
config.Save(ConfigurationSaveMode.Modified);
//
強制重新載入配置檔案的ConnectionStrings配置節
ConfigurationManager.RefreshSection("ConnectionStrings");
}
4.3 讀取appStrings配置節
///
///返回*.exe.config檔案中appSettings配置節的value項
///
///
///
private static string
GetAppConfig(string strKey)
{
foreach (string key in
ConfigurationManager.AppSettings)
{
if (key == strKey)
{
return ConfigurationManager.AppSettings[strKey];
}
}
return null;
}
4.4 更新connectionStrings配置節
///
///在*.exe.config檔案中appSettings配置節增加一對鍵、值對
///
///
///
private static void
UpdateAppConfig(string newKey, string newValue)
{
bool isModified
= false;
foreach (string key in ConfigurationManager.AppSettings)
{
if(key==newKey)
{
isModified = true;
}
}
// Open App.Config of executable
Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// You need to remove the old settings object before you can replace it
if (isModified)
{
config.AppSettings.Settings.Remove(newKey);
}
// Add an
Application Setting.
config.AppSettings.Settings.Add(newKey,newValue);
// Save the changes in
App.config file.
config.Save(ConfigurationSaveMode.Modified);
//
Force a reload of a changed section.
ConfigurationManager.RefreshSection("appSettings");
}
///
/// 寫入Key,Value 到XML檔案
///
///
///
public static void SaveConfig(string
Key,string Value)
{
XmlDocument doc = new XmlDocument();
//獲得配置檔案的全路徑
string strFileName =
AppDomain.CurrentDomain.BaseDirectory.ToString() + "App.config";
doc.Load(strFileName);
//找出名稱為“add”的所有元素
XmlNodeList nodes =
doc.GetElementsByTagName("add");
for (int i = 0; i < nodes.Count;
i++)
{
//獲得將當前元素的key屬性
XmlAttribute att =
nodes[i].Attributes["key"];
//根據元素的第一個屬性來判斷當前的元素是不是目標元素
if
(att.Value == Key)
{
//對目標元素中的第二個屬性賦值
att =
nodes[i].Attributes["value"];
att.Value = Value;
break;
}
}
//儲存上面的修改
doc.Save(strFileName);
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-617321/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C#專案例項中讀取並修改App.config檔案《轉》C#APP
- App.config自定義節點讀取APP
- jquery實現的讀取並解析xml檔案程式碼例項jQueryXML
- Swift 下載檔案,並讀取Swift
- 讀取檔案流並寫入檔案流
- java讀取大檔案並處理Java
- python解壓並讀取檔案Python
- Rollup處理並打包JS檔案專案例項JS
- operties檔案的讀取、新增、修改、清空、另存
- nodejs 讀取excel檔案,並去重NodeJSExcel
- python讀取並寫入mat檔案Python
- fgets讀取檔案時的注意事項
- javascript讀取xml檔案程式碼例項JavaScriptXML
- Java讀取本地檔案內容並輸出Java
- 讀取海量資料到檔案並拆分排序排序
- Python xml.etree.ElementTree讀寫xml檔案例項PythonXML
- php如何上傳txt檔案,並且讀取txt檔案PHP
- Blazor MiniExcel讀取伺服器本地檔案例子BlazorExcel伺服器
- js獲取並解析xml檔案程式碼例項JSXML
- Python讀取修改ini配置檔案[ConfigParser]Python
- phpSpreadsheet 讀取圖片並另存為檔案PHP
- Java讀取本地檔案,並顯示在JSP檔案中JavaJS
- JavaScript讀取文字檔案內容程式碼例項JavaScript
- 如何使用Python讀取文字檔案並回答問題?Python
- 修改並儲存hosts檔案
- Python中Spark讀取parquet檔案並獲取schema的JSON表示PythonSparkJSON
- ajax讀取檔案中內容的程式碼例項
- Java 多執行緒讀取檔案並統計詞頻 例項 出神入化的《ThreadPoolExecutor》Java執行緒thread
- editorconfig配置檔案例項
- Python下載檔案例項Python
- qt 寫入xml檔案例項QTXML
- C++檔案操作實戰:建立、寫入、讀取、修改檔案一應俱全C++
- 清華尹成帶你實戰GO案例(27)Go 讀取檔案Go
- nodeJS根據檔案字尾名讀取檔案並返回符合檔案總數NodeJS
- Python讀取大量Excel檔案並跨檔案批次計算平均值PythonExcel
- Java 讀取檔案Java
- tiff檔案讀取
- 任意檔案讀取