c# - change - properties settings default save()
VS2005 C#Cambia de forma programada la cadena de conexión contenida en app.config (4)
Puede abrir programáticamente la configuración con el uso del espacio de nombres System.configuration:
Configuration myConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
Luego puede acceder a la colección de cadenas de conexión en:
myConfig.ConnectionStrings.ConnectionStrings
Puede modificar la colección como desee, y cuando .Save()
llame a .Save()
en el objeto de configuración.
Me gustaría cambiar programáticamente la cadena de conexión para una base de datos que utiliza el proveedor de membresía de asp.net dentro de una aplicación de Windows. El espacio de nombres de configuración del sistema permite cambios en la configuración del usuario, sin embargo, nos gustaría ajustar la configuración de la aplicación. ¿Es necesario escribir una clase con XML para modificar la clase? ¿Es necesario eliminar las conexiones actuales (puede uno seleccionar una conexión para borrarlas) y agregar una nueva? ¿Se puede ajustar la cadena de conexión existente?
Use la clase ConnectionStringsSection. La documentación incluso proporciona un ejemplo sobre cómo crear un ConnectionString nuevo y hacer que el marco lo guarde en el archivo de configuración sin tener que implementar todo el shebang XML.
Mira aquí y busca un ejemplo.
// Get the application configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
// Create a connection string element and
// save it to the configuration file.
// Create a connection string element.
ConnectionStringSettings csSettings =
new ConnectionStringSettings("My Connection",
"LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;" +
"Initial Catalog=aspnetdb", "System.Data.SqlClient");
// Get the connection strings section.
ConnectionStringsSection csSection =
config.ConnectionStrings;
// Add the new element.
csSection.ConnectionStrings.Add(csSettings);
// Save the configuration file.
config.Save(ConfigurationSaveMode.Modified);
Tenía que hacer esto exactamente. Este es el código que funcionó para mí:
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
connectionStringsSection.ConnectionStrings["Blah"].ConnectionString = "Data Source=blah;Initial Catalog=blah;UID=blah;password=blah";
config.Save();
ConfigurationManager.RefreshSection("connectionStrings");