新增項目-app.config文件:
右擊專案名稱,選擇“加入”→“新增項目”,在出現的“加入新項目”對話方塊中,選擇“應用程式組態檔”;如果專案以前沒有設定檔,則預設的檔名稱為“app.config”,按一下“確定”。出現在VS中的app.config文件為<?xmlversion="1.0"encoding="utf-8" ?> <configuration> ……. </configuration>
加入ConnectionStrings,appSettings節點:
在app.config加入ConnectionStrings節點:
<configuration> <connectionStrings> <add name="myConn" connectionString="Data Source=localhost;Initial Catalog=jxcbook;User ID=sa;password=********" providerName="System.Data.SqlClient" /> </connectionStrings> <appSettings> <add key="userName"value="uid" /> <add key="password"value="pwd" /> </appSettings> <configuration/>
ConnectionStrings所內含的Tag add, 共有三個屬性
- name:add 標籤名稱
- connectionString:連線資訊
- providerName: provider 名稱
範例畫面介紹
本範例開啟視窗時會將connectionString讀到輸入框, 修改完連線字串, 修改好點Save會把結果存回app.config程式碼
以下程式共有四個function:
- GetConnectionStringsConfig
- GetAppConfig
- UpdateConnectionStringsConfig
- UpdateAppConfig
Imports System Imports System.Configuration Public Class appConfig Private _connAddName As String = "myConn" Private Sub appConfig_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.txtConString.Text = GetConnectionStringsConfig(_connAddName) End Sub '讀取ConnectionString Private Function GetConnectionStringsConfig(ByVal connectionName As String) As String Dim connectionString As String = ConfigurationManager.ConnectionStrings (connectionName).ConnectionString.ToString() Return connectionString End Function '讀取AppConfig Private Function GetAppConfig(ByVal strKey As String) As String For Each key As String In ConfigurationManager.AppSettings If key = strKey Then Return ConfigurationManager.AppSettings(strKey) End If Next Return Nothing End Function '更新ConnectionString Private Sub UpdateConnectionStringsConfig(ByVal newName As String, ByVal newConString As String, ByVal newProviderName As String) Dim isModified As Boolean = False '判斷連接字串是否存在 If ConfigurationManager.ConnectionStrings(newName) IsNot Nothing Then isModified = True End If '新建一個連接字串實例 Dim mySettings As New ConnectionStringSettings(newName, newConString, newProviderName) ' 打開設定檔*.exe.config Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) ' 如果連接串已存在,先刪除它 If isModified Then config.ConnectionStrings.ConnectionStrings.Remove(newName) End If ' 將新的連接串加到設定檔中. config.ConnectionStrings.ConnectionStrings.Add(mySettings) ' 儲存設定檔所作的更改 config.Save(ConfigurationSaveMode.Modified) ' 強制重新載入設定檔的ConnectionStrings配置節點 ConfigurationManager.RefreshSection("ConnectionStrings") End Sub '更新AppConfig Private Sub UpdateAppConfig(ByVal newKey As String, ByVal newValue As String) Dim isModified As Boolean = False For Each key As String In ConfigurationManager.AppSettings If key = newKey Then isModified = True End If Next ' 打開設定檔*.exe.config Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) ' 如果連接串已存在,先刪除它 If isModified Then config.AppSettings.Settings.Remove(newKey) End If ' 將新的連接串加到設定檔中. config.AppSettings.Settings.Add(newKey, newValue) ' 儲存設定檔所作的更改 config.Save(ConfigurationSaveMode.Modified) ' 強制重新載入設定檔的ConnectionStrings配置節點 ConfigurationManager.RefreshSection("appSettings") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '讀出provider nname Dim providerName As String = ConfigurationManager.ConnectionStrings(_connAddName).ProviderName.ToString() UpdateConnectionStringsConfig(_connAddName, Me.txtConString.Text, providerName) End Sub End Class
加密
第一步:先將目錄下的App.config改名為Web.config。第二步:打開VS命令提示字元,輸入命令:aspnet_regiis -pef "配置節" "目錄"
可參考:
http://msdn.microsoft.com/zh-tw/library/zhhddkxy(v=VS.80).aspx
http://blog.ncuhome.cn/youngpig/Logs/2010/3/15/36456.html
參考:
http://www.codeproject.com/KB/cs/SystemConfiguration.aspxhttp://msdn.microsoft.com/zh-tw/library/system.configuration.configurationmanager(v=VS.80).aspx
http://www.cnblogs.com/xshy3412/archive/2007/11/24/971374.html
您好:
回覆刪除參考了您的程式碼,有個問題想請教
我在VS2005開發環境上,加入您上述的程式碼,但是測試時,都沒有成功更改任何的文字
是不是要封裝部署後,才能有動作?
請指教!