新增項目-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開發環境上,加入您上述的程式碼,但是測試時,都沒有成功更改任何的文字
是不是要封裝部署後,才能有動作?
請指教!