1. 向项目添加app.config文件:
右击项目名称,选择添加添加新建项,在出现的添加新项对话框中,选择添加应用程序配置文件;如果项目以前没有配置文件,则默认的文件名称为“app.config”,单击确定。出现在解决方案资源管理器中的app.config文件为:
xml version ="1.0" encoding ="utf-8" ?>

< configuration >

    

configuration >
2.  connectionStrings配置节:
请注意:如果您的SQL版本为2005 Express版,则默认安装时SQL服务器实例名为localhost\SQLExpress,须更改以下实例中“Data Source=****;”一句为“Data Source=localhost\SQLExpress;”,在等于号的两边不要加上空格。
如本例中:
< connectionStrings >

         < clear />

         < add name ="ProConnectionString" connectionString ="Data Source=172.18.139.215;Initial Catalog=NEWDB;User ID=dba;Password=dba" />

     connectionStrings >

3. appSettings配置节:
appSettings配置节为整个程序的配置,如果是对当前用户的配置,请使用userSettings配置节,其格式与以下配置书写要求一样。
< appSettings >

         < add key ="isFirstRunSystem" value ="true" />

     appSettings >

 
C#中的数据库配置
App.config 文件:
 
xml version ="1.0" encoding ="utf-8" ?>

< configuration >

    

     < appSettings >

         < add key ="isFirstRunSystem" value ="true" />

     appSettings >

configuration >

4.读取和更新配置节
FrmDBConfig.cs

/*----------------------------------------------------------------

        // Copyright (C) Project

        // 文件名:

        // 文件功能描述:进行数据库配置和连接

        //

        //    

        // 创建标识:

        //

        // 修改标识:

        // 修改描述:

----------------------------------------------------------------*/


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.ProviderBase;

using System.Data.SqlClient;

namespace Kitchen.UI

{

         public partial class FrmDBConfig : Form

        {

                 public FrmDBConfig()

                {

                        InitializeComponent();

                        BindDataServer();

                }

                 public FrmDBConfig(FrmWelcome fw)

                {

                        InitializeComponent();

                        BindDataServer();

                        fw.Close();

                }

                 ///

                 /// 测试数据库连接

                 ///


                 /// "sender">


                 /// "e">


                 private void button1_Click( object sender, EventArgs e)

                {

                         if (txtPassWord.Text.Trim() == "" || cbServerName.Text.Trim() == "" || txtUsername.Text.Trim() == "")

                        {

                                MessageBox.Show( "输入服务器名(或者IP)、用户名和密码");

                                 return;

                        }

                         string connStr = string.Format( "Data Source={0};User ID={1};Password={2}", cbServerName.Text.Trim(), txtUsername.Text.Trim(), txtPassWord.Text.Trim());

                        SqlConnection conn = new SqlConnection(connStr); // sqlcp = new SqlClientPermission()

//建立连接

                         try

                        {

                                 //myConn = new SqlConnection(connStr);

                                conn.Open();

                        }

                         catch (Exception ee)

                        {

                                MessageBox.Show( "连接失败");

                                 return;

                        }

                        MessageBox.Show( "连接成功");

                        

                }

    

                 private void button4_Click( object sender, EventArgs e)

                {

                         this.Close();

                }

    

                 private void button2_Click( object sender, EventArgs e)

                {

                         if (txtPassWord.Text.Trim() == "" || cbServerName.Text.Trim() == "" || txtUsername.Text.Trim() == "")

                        {

                                MessageBox.Show( "输入服务器名(或者IP)、用户名和密码");

                                 return;

                        }

                         if ((System.Configuration.ConfigurationSettings.AppSettings.GetValues( "isFirstRunSystem"))[0] == "true")

                        {

                                 try

                                {

                                         string str = string.Format( "data source ={0};initial catalog={1};user id={2};password={3};",

                                                cbServerName.Text.Trim(), txtDBName.Text.Trim(), txtUsername.Text.Trim(), txtPassWord.Text);

                                        Kitchen.Util.Config cc = new Kitchen.Util.Config();

                                        cc.UpdateDBConfig( "ProConnectionString ", str, "System.Data.SqlClient");

                                        MessageBox.Show( "配置成功,软件将自动重启动。"); //更新配置节

                                        cc.UpdateConfig( "isFirstRunSystem", "false"); //更新配置节

                                         this.Close();

                                        Application.Restart();

                                }

                                 catch (Exception ee)

                                {

                                        MessageBox.Show( "配置失败\n" + ee.Message, "错误");

                                }

                        }

                         else

                        {

                                 try

                                {

                                         string str = string.Format( "data source ={0};initial catalog={1};user id={2};password={3};",

                                                cbServerName.Text.Trim(), txtDBName.Text.Trim(), txtUsername.Text.Trim(), txtPassWord.Text);

                                        Kitchen.Util.Config cc = new Kitchen.Util.Config();

                                        cc.UpdateDBConfig( "ProConnectionString ", str, "System.Data.SqlClient");

                                         if (MessageBox.Show( "更新成功,是否重新启动软件?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

                                        {

                                                 this.Close();

                                                Application.Restart();

                                        }

                                         else

                                        {

                                                 this.Close();

                                        }

                                }

                                 catch (Exception ee)

                                {

                                        MessageBox.Show( "配置失败\n" + ee.Message, "错误");

                                }

                        }

                }

    

                 private void BindDataServer()

                {

                        System.Data.Sql.SqlDataSourceEnumerator sdse = System.Data.Sql.SqlDataSourceEnumerator.Instance;

                        DataTable dt = sdse.GetDataSources();

                        cbServerName.DataSource = dt;

                        cbServerName.DisplayMember = "ServerName";

                }

        }

}

Config.cs 文件:
/*----------------------------------------------------------------/

Copyright (C)版权所有。

    

文件名:

文件功能描述:更新connectionStrings配置节

    

修改标识:

修改描述:

    

/----------------------------------------------------------------*/


    

using System;

using System.Collections.Generic;

using System.Text;

using System.Xml;

using System.Windows.Forms;

namespace Kitchen.Util

{

         public class Config

        {

                 //更新app.config的函数

                 //配置文件的源文件

    

                 //        

                 //        

                 //        

                 //        

                 //        

                 //    

                 ///

                 /// 更新app.config的数据库连接字符串函数

                 ///


                 /// "connstrname">连接字符串名称


                 /// "connstr">连接字符串

                 public     void     UpdateDBConfig( string     connstrname, string connstr, string providername)

                {        

                        XmlDocument     doc     =     new     XmlDocument();        

                        doc.Load(Application.ExecutablePath+ ".config");

                        XmlNode node = doc.SelectSingleNode( @"//add[@name='" + connstrname + "']");        

                        XmlElement     ele     =     (XmlElement)node;

                        ele.SetAttribute("connectionString", connstr);

                        ele.SetAttribute("providerName", providername);

                        doc.Save(Application.ExecutablePath+".config");            

                }

    

                ///

                /// 修改config中

                ///


                /// "keyname">键名称


                /// "keyvalue">键值

                public void UpdateConfig(string keyname,string keyvalue)                {

                        XmlDocument doc = new XmlDocument();

                        doc.Load(Application.ExecutablePath + ".config");

                        XmlNode node = doc.SelectSingleNode(@"//add[@key='" + keyname + "']");

                        XmlElement ele = (XmlElement)node;

                        ele.SetAttribute("value", keyvalue);

                        doc.Save(Application.ExecutablePath + ".config");

                }        

    

    

        }

}