Hola Colegas, tengo una Solución en VS 2005 donde tengo un Proyecto llamado Procesos y tengo una biblioteca de clases llamada Biblioteca y la conexión la configure con EnterpriseLibrary.
Mi necesidad que tengo es que necesito que la conexión sea dinámica ya que desde la misma aplicación el usuario puede conectarse a otro servidor y otra base de datos entonces necesito actualiza la conexion pero no se si al hacer eso afecte a los demas usuarios, actualmente uso Settings.Default y no tengo ningún problema solo actualizo la conexión ahí pero quiero estructurar bien este nuevo proyecto y quiero utilizar la parte de Datos en una biblioteca de clases.
Entonces tengo lo siguiente:
El app.Config que genera el EnterpriseLibrary que ahí le puse un servidor y base por default:
Código:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<connectionStrings>
<add name="strConn" connectionString="data source=SERVERA;Initial Catalog=BASEA;Persist Security Info=True;User ID=sa;Password=sa;Enlist=True;Connect Timeout=900;Application"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
Luego hago esto para actualizar la conexión pero no lo hace y ese es mi gran problema, no se si me este faltando algo.
Código:
//Cargo la configuracion
Configuration Config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
//Se elimina la conexion.
Config.ConnectionStrings.ConnectionStrings.Remove("strConn");
//Agrego la nueva conexion
string strConnString = "data source=SERVERB;Initial Catalog=BASEB;Persist Security Info=True;User ID=sa;Password=sa;Enlist=True;Connect Timeout=900;Application";
string strProvider = "System.Data.SqlClient";
Config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings("strConn", strConnString, strProvider));
//Guardo el archivo de configuracion
Config.Save(ConfigurationSaveMode.Full);
//Forzo la aplicacion para que actualize el archivo en tiempo de ejecucion
ConfigurationManager.RefreshSection("connectionStrings");
Con este código cargo la conexión que tiene el app.Config que configuro el Enterprise Library y tiene la conexión que por default le puse, esto desde una clase que tengo en la biblioteca de clases.
Código:
Database db = DatabaseFactory.CreateDatabase("strConn");
DbCommand cmd;
Alguna sugerencia, apoyo, de antemano muchas gracias.