是否可以(以及如何)在C#中的运行时将ConnectionString添加到app.config?
我有一个控制台应用程序,它获取connectionstring作为参数。我必须在app.config中设置一个名为“ConnectionString”的ConnectionString,并将给定参数设置为sql ConnectionString 谢谢你的回答。通过这些链接,我找到了: 变量配置= ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 变量连接字符串设置= 新的ConnectionString设置(“ConnectionString”, _参数[“connectionString”],“System.Data.SqlClient”); config.ConnectionStrings.ConnectionStrings.Add(connectionStringSettings); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection(“连接字符串”)是否可以(以及如何)在C#中的运行时将ConnectionString添加到app.config?,c#,connection-string,app-config,C#,Connection String,App Config,我有一个控制台应用程序,它获取connectionstring作为参数。我必须在app.config中设置一个名为“ConnectionString”的ConnectionString,并将给定参数设置为sql ConnectionString 谢谢你的回答。通过这些链接,我找到了: 变量配置= ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 变量连接字符串设置= 新的ConnectionString
忽略这个答案,看看下面 是的,看一看 这种方法可能就是你想要的
System.Configuration.ConfigurationManager.ConnectionStrings.Add(new ConnectionStringSettings("new name", "new string");
是的,您完全可以在运行时在app.config中添加/修改/删除设置。我通常就是这样做的
using System.Configuration; // don't forget to add the system.configuration dll to your references.
public static void CreateConnectionString(string datasource, string initialCatalog, string userId, string password)
{
try
{
//Integrated security will be off if either UserID or Password is supplied
var integratedSecurity = string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(password);
//Create the connection string using the connection builder
var connectionBuilder = new SqlConnectionStringBuilder
{
DataSource = datasource,
InitialCatalog = initialCatalog,
UserID = userId,
Password = password,
IntegratedSecurity = integratedSecurity
};
//Open the app.config for modification
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
//Retreive connection string setting
var connectionString = config.ConnectionStrings.ConnectionStrings["ConnectionStringName"];
if (connectionString == null)
{
//Create connection string if it doesn't exist
config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings
{
Name = ConnectionName,
ConnectionString = connectionBuilder.ConnectionString,
ProviderName = "System.Data.SqlClient" //Depends on the provider, this is for SQL Server
});
}
else
{
//Only modify the connection string if it does exist
connectionString.ConnectionString = connectionBuilder.ConnectionString;
}
//Save changes in the app.config
config.Save(ConfigurationSaveMode.Modified);
}
catch (Exception)
{
//TODO: Handle exception
}
}
希望这有帮助。-1,这将导致
System.Configuration.configurationErrors异常:配置是只读的。
当它显然不起作用时,这怎么可能是公认的答案!是否有一些技巧使它不会抛出异常-1从我这里现在这一行代码是好的。缺少前后的代码:-)打开并保存???甚至缺少右括号。我无法删除此答案,因为其标记为已接受。向上投票的库布斯基和经过编辑的答案,以反映