Sunday, November 9, 2014

Load, save connection string in app.config dynamically

Code

Configuration config;
private void Form1_Load(object sender, EventArgs e)
{
    config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
}
 
private void btnLoadSettings_Click(object sender, EventArgs e)
{
    System.Data.SqlClient.SqlConnectionStringBuilder cb = new System.Data.SqlClient.SqlConnectionStringBuilder();
    cb.ConnectionString = config.ConnectionStrings.ConnectionStrings["cs"].ConnectionString;
 
    boxServer.Text = cb.DataSource;
    boxUsername.Text = cb.UserID;
    boxPassword.Text = cb.Password;
    boxDatabase.Text = cb.InitialCatalog;
    cboxIntegratedSecurity.Checked = cb.IntegratedSecurity;
}
 
private void cboxIntegratedSecurity_CheckStateChanged(object sender, EventArgs e)
{
    pnlUserPass.Enabled = !cboxIntegratedSecurity.Checked;
}
 
private void btnSaveCS_Click(object sender, EventArgs e)
{
    System.Data.SqlClient.SqlConnectionStringBuilder cb = new System.Data.SqlClient.SqlConnectionStringBuilder();
 
    cb.DataSource = boxServer.Text;
    cb.UserID = boxUsername.Text;
    cb.Password = boxPassword.Text;
    cb.InitialCatalog = boxDatabase.Text;
    cb.IntegratedSecurity = cboxIntegratedSecurity.Checked;
 
    config.ConnectionStrings.ConnectionStrings["cs"].ConnectionString = cb.ConnectionString;
 
    config.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection("connectionStrings");
 
    MessageBox.Show("Connection string saved successfully");
}

Design