我想在WINFORM中通过程序来修改在app.config中原来的配置            ConnStrConfig csc = new ConnStrConfig();
            csc.Db = config_db.Text.Trim();
            csc.PassWord = config_passWord.Text.Trim();
            csc.Server = config_tbServerName.Text.Trim();
            csc.Trust = config_trustConn.Checked;
            csc.UserName = config_tbUserName.Text.Trim();
                Properties.Settings.Default.ConStr = csc.ToString();
                Properties.Settings.Default.Save();
                MessageBox.Show("连接测试通过,已保存连接信息到配置文件", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
在Properties.Settings.Default.ConStr = csc.ToString();中出现  错误 1 无法对属性或索引器“ChangeDBLink.Properties.Settings.ConStr”赋值 -- 它是只读的 从而更改不了,请帮忙?

解决方案 »

  1.   

    http://hi.baidu.com/%CC%EC%B5%D8%BB%CC%BB%CC/blog/item/b467de314cb532ab5fdf0e7e.html
      

  2.   

    http://www.cnblogs.com/chinhr/archive/2009/02/26/1398913.html
    http://www.cnblogs.com/yunhuasheng/archive/2009/03/19/1113091.html
      

  3.   

    ConfigurationManager.ConnectionStrings["节点名"].ToString();
      

  4.   


    正确,当然你也可以以xml文件进行修改,但要重新启动应用程序
      

  5.   

    下面一个根lz要求一样的例子:using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Configuration;namespace SMSTimer
    {
        public partial class Form3 : Form
        {
            public Form3()
            {
                InitializeComponent();
            }        private void button2_Click(object sender, EventArgs e)
            {
                this.Close();
            }        private void button1_Click(object sender, EventArgs e)
            {
                //修改config配置文件
                Configuration config;
                string configPath = System.Windows.Forms.Application.ExecutablePath;
                config = ConfigurationManager.OpenExeConfiguration(configPath);
                ConnectionStringsSection connectionString = (ConnectionStringsSection)config.GetSection("connectionStrings");
                connectionString.ConnectionStrings["DBConn"].ConnectionString = "Data Source="+textBox1.Text.Trim()+";Initial Catalog="+textBox2.Text.Trim()+";Persist Security Info=True;User ID="+textBox3.Text.Trim()+";Password="+textBox4.Text.Trim();
                config.Save();            MessageBox.Show("修改成功!","提示");
                this.DialogResult = DialogResult.OK;
            }        private void Form3_Load(object sender, EventArgs e)
            {
                Configuration config;
                string configPath = System.Windows.Forms.Application.ExecutablePath;
                config = ConfigurationManager.OpenExeConfiguration(configPath);
                ConnectionStringsSection connectionString = (ConnectionStringsSection)config.GetSection("connectionStrings");            string connstr = connectionString.ConnectionStrings["DBConn"].ConnectionString;
                string usr = "", pwd = "", svr = "", dbn = "";
                string[] tempstrs = connstr.Split(';');            foreach (string tempstr in tempstrs)
                {
                    string[] strs = tempstr.Split('=');
                    switch (strs[0])
                    {
                        case "User ID": usr = strs[1]; break;
                        case "Password": pwd = strs[1]; break;
                        case "Data Source": svr = strs[1]; break;
                        case "Initial Catalog": dbn = strs[1]; break;
                    }
                }
                textBox1.Text = svr;
                textBox2.Text = dbn;
                textBox3.Text = usr;
                textBox4.Text = pwd;
            }    }
    }