簡體   English   中英

將ConnectionString保存在App.config中

[英]Saving ConnectionString in App.config

我正在嘗試使用以下方法在運行時基於每個用戶在app.config中保存連接字符串:

public void saveConnectionString(string serverName, string conn)
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
    var connectionString = config.ConnectionStrings.ConnectionStrings[serverName];
    config.ConnectionStrings.SectionInformation.AllowExeDefinition = ConfigurationAllowExeDefinition.MachineToLocalUser;
    if (connectionString == null)
    {
        config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings
        {
            Name = serverName,
            ConnectionString = conn,
            ProviderName = "System.Data.SqlClient"
        });

        config.Save(ConfigurationSaveMode.Modified);
    }
    else
    {
        connectionString.ConnectionString = conn;
    }
}

我有一個例外:

鎖定后無法編輯ConfigurationSection屬性。

當我嘗試獲取ConfigurationAllowExeDefinition 有沒有辦法建立自己的部分?

在代碼配置后嘗試以下代碼。 保存 :-

ConfigurationManager.RefreshSection( “的ConnectionStrings”);

We cant add to ConfigurationManager.ConnectionStrings using ConfigurationManager.ConnectionStrings.Add(connectionStringSettings) -- This fails.
But we can add to the configuration section and refresh the ConfigurationManager.

public static void AddConnectionStringSettings(
       System.Configuration.Configuration config,
       System.Configuration.ConnectionStringSettings conStringSettings)

{   
   ConnectionStringsSection connectionStringsSection = config.ConnectionStrings; 
  connectionStringsSection.ConnectionStrings.Add(conStringSettings);  
  config.Save(ConfigurationSaveMode.Minimal); 
  ConfigurationManager.RefreshSection("connectionStrings"); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM