Click here to Skip to main content
11,578,739 members (62,567 online)
Click here to Skip to main content

Tagged as

Configuring a Connection String in the App.Config File During Runtime in C#

, 28 Jun 2012 CPOL 95.1K 4K 21
Rate this:
Please Sign up or sign in to vote.
How to configure a connection string at runtime for a Windows application using C#

Introduction

This document covers how to configure a connection string at runtime for a Windows application using C#. This will help the user to switch connections during runtime. Also if there are multiple servers and databases, the number of connection strings will be high and the user cannot add everything in the App.config file. This will be helpful for users who might use a random server and database during runtime and there is no need to create a connection string beforehand.

Steps to Configure

  1. Open Visual Studio and create a new Windows application. (Path : Start -> All Programs -> Microsoft Visual Studio 2010-> Microsoft Visual Studio 2010)

  2. Add the App.config file to the project.

  3. Add the below code in the connection string:
    <configuration>
    <connectionStrings>
    <add name="con" providerName="System.Data.sqlclient" connectionString="" />
    </connectionStrings>
    </configuration>

  4. Now add two text boxes, two labels, and a button in the form as shown below:

  5. Add a dropdown below to populate a column from a table as shown below:

  6. Add “using System.Data.SqlClient;” in the namespaces area and write the below code in the buttonclick event:
    try
    {
        //Constructing connection string from the inputs
        StringBuilder Con = new StringBuilder("Data Source=");
        Con.Append(txtServer.Text);
        Con.Append(";Initial Catalog=");
        Con.Append(txtDatabase.Text);
        Con.Append(";Integrated Security=SSPI;");
        string strCon = Con.ToString();
        updateConfigFile(strCon);
        //Create new sql connection
        SqlConnection Db = new SqlConnection();
        //to refresh connection string each time else it will use previous connection string
        ConfigurationManager.RefreshSection("connectionStrings");
        Db.ConnectionString = ConfigurationManager.ConnectionStrings["con"].ToString();
        //To check new connection string is working or not
        SqlDataAdapter da = new SqlDataAdapter("select * from employee",Db);
     SqlDataAdapter da = new SqlDataAdapter("select * from employee");//incase earlier Visualstudios
        DataTable dt = new DataTable();
        da.Fill(dt);
        cmbTestValue.DataSource=dt;
        cmbTestValue.DisplayMember="Emp_Id";
    }
    catch (Exception E)
    {
        MessageBox.Show(ConfigurationManager.ConnectionStrings["con"].ToString() + 
            ".This is invalid connection", "Incorrect server/Database");
    }

  7. Add “using System.Xml; using System.Configuration;” in the namespaces section. Write a new function updateConfigFile with the following code:
    public void updateConfigFile(string con){
        //updating config file
        XmlDocument XmlDoc = new XmlDocument();
        //Loading the Config file
        XmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
        foreach (XmlElement xElement in XmlDoc.DocumentElement)
        {
           if (xElement.Name == "connectionStrings")
           {
                  //setting the coonection string
                  xElement.FirstChild.Attributes[2].Value = con;
           }
        }
        //writing the connection string in config file
        XmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
    }

  8. Now build the solution and enter the server name and database. Check dropdown is populated correctly. Change database name and click Connect again and verify the new database is connected.

Conclusion

By using the above code, the user can switch over to any server and database at runtime instead of editing the app.config file each time for adding a new connection string.

License

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

Share

About the Author

Santhosh Kumar Jayaraman
Software Developer Radiometer
India India
Currently i am trying to learn all about javascripts . I have experience in Microsoft technologies like WPF, WCF, ASPNET, WinForms,Silverlight, VB.NET, C-Sharp, Entity framework,SSRS, LINQ, Extension methods and SQL server. I started with my career in Infosys in the year 2009 and i worked with Trigent, Education First (EF) in the recent years before joining my current company Radiometer.

You may also be interested in...

Comments and Discussions

 
Questionwarning error: The index being passed in is out of range Pin
Member 245846728-Oct-14 20:37
memberMember 245846728-Oct-14 20:37 
QuestionMultiple SQL Server connection strings Pin
Arjunwalmiki15-Jan-14 19:23
memberArjunwalmiki15-Jan-14 19:23 
QuestionRequired Help Pin
AnilC20-Aug-13 1:58
memberAnilC20-Aug-13 1:58 
GeneralMy vote of 5 Pin
maxsshukla7-Jan-13 8:42
membermaxsshukla7-Jan-13 8:42 
GeneralMy vote of 5 Pin
daghune20-Nov-12 19:03
memberdaghune20-Nov-12 19:03 
SuggestionAn easy way to modify each app.setting Pin
DanielLey29-Jun-12 3:24
memberDanielLey29-Jun-12 3:24 
GeneralReally? Pin
Vitaly Tomilov28-Jun-12 8:43
memberVitaly Tomilov28-Jun-12 8:43 
Suggestionvalid as long as... Pin
VallarasuS28-Jun-12 3:17
memberVallarasuS28-Jun-12 3:17 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150603.1 | Last Updated 28 Jun 2012
Article Copyright 2012 by Santhosh Kumar Jayaraman
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid