Click here to Skip to main content
15,888,022 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
hi i want to Change connectionStrings in RunTime in app.config for DBEntities
i do it :
HTML
<connectionStrings>
   <add name="NezamDBEntities" connectionString="metadata=res://*/Models.NezamDBModel.csdl|res://*/Models.NezamDBModel.ssdl|res://*/Models.NezamDBModel.msl;provider=System.Data.SqlClient;provider connection string='Server=MOHAMMADALI-PC;initial catalog=NezamDB;user id=sa;password=1;MultipleActiveResultSets=True;App=EntityFramework';" providerName="System.Data.EntityClient" />
   <add name="Server" connectionString="MOHAMMADALI-PC" />
   <add name="DataBase" connectionString="NezamDB" />
   <add name="User" connectionString="sa" />
   <add name="Pwd" connectionString="1" />
 </connectionStrings>

C#
XmlDocument xmldoc = new XmlDocument();
               xmldoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
               XmlNode appsetting = xmldoc.SelectSingleNode("configuration/connectionStrings");
               string sbo = "metadata=res://*/Models.NezamDBModel.csdl|res://*/Models.NezamDBModel.ssdl|res://*/Models.NezamDBModel.msl;provider=System.Data.SqlClient;provider connection string=";
               sbo += "'Server=";
               sbo += txtServer.Text.Trim();
               sbo+=(";initial catalog=");
               sbo+=(txtDataBase.Text.Trim());
               sbo+=(";user id=");
               sbo+=(txtUser.Text);
               sbo+=(";password=");
               sbo+=(txtPassword.Text);
               sbo += (";MultipleActiveResultSets=True;App=EntityFramework';");
               foreach (XmlNode ChildNode in appsetting)
               {
                   if (ChildNode.Attributes["name"].Value == "NezamDBEntities")
                       ChildNode.Attributes["connectionString"].Value = sbo;
                   if (ChildNode.Attributes["name"].Value == "Server")
                       ChildNode.Attributes["connectionString"].Value = txtServer.Text;
                   if (ChildNode.Attributes["name"].Value == "DataBase")
                       ChildNode.Attributes["connectionString"].Value = txtDataBase.Text;//name data base
                   if (ChildNode.Attributes["name"].Value == "User")
                       ChildNode.Attributes["connectionString"].Value = txtUser.Text;//name user id
                   if (ChildNode.Attributes["name"].Value == "Pwd")
                       ChildNode.Attributes["connectionString"].Value = txtPassword.Text;//password bank

               }
               xmldoc.Save(AppDomain.CurrentDomain.BaseDirectory + @"..\..\App.config");
               xmldoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
               var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
               var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
               connectionStringsSection.ConnectionStrings["NezamDBEntities"].ConnectionString = sbo;
               config.Save(ConfigurationSaveMode.Modified);
               //ConfigurationManager.RefreshSection("connectionStrings");
               ConfigurationManager.RefreshSection(config.ConnectionStrings.SectionInformation.Name);
               Properties.Settings.Default.Reload();


but notwork

what should i do ?
Posted

1 solution

try this
App.config change[^]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900