我有一个控制台应用程序,它获取连接字符串作为参数。我必须在 app.config 中设置一个名为“ConnectionString”的 ConnectionString,并将给定的参数设置为 sql 连接字符串。
感谢答案。在链接的帮助下,我得到了这个:
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var connectionStringSettings = new ConnectionStringSettings("ConnectionString", _arguments["connectionString"], "System.Data.SqlClient"); config.ConnectionStrings.ConnectionStrings.Add(connectionStringSettings); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("connectionStrings");
最佳答案
是的,您绝对可以在运行时在 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
}
}
希望这对您有所帮助。
关于c# - 是否可以(以及如何)在 C# 中的运行时将 ConnectionString 添加到 app.config?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1833151/