C# ConnectionString属性尚未初始化

C# ConnectionString属性尚未初始化,c#,app-config,C#,App Config,好吧,看来我遇到了一个讨厌的错误,希望你能帮我解决 我正在使用winforms,在应用程序设置窗体上,我提供了更改连接字符串的功能。当连接字符串的不同部分被更改并且用户离开文本框时,它会将信息写入app.config。这一切都很有魅力 我有一个按钮来测试连接,因此,在表单仍然打开的情况下,在连接字符串更改后随时按下此按钮时,我会遇到一个错误: The ConnectionString property has not been initialized 更复杂的是,当我关闭并重新打开应用程序时,

好吧,看来我遇到了一个讨厌的错误,希望你能帮我解决

我正在使用winforms,在应用程序设置窗体上,我提供了更改连接字符串的功能。当连接字符串的不同部分被更改并且用户离开文本框时,它会将信息写入app.config。这一切都很有魅力

我有一个按钮来测试连接,因此,在表单仍然打开的情况下,在连接字符串更改后随时按下此按钮时,我会遇到一个错误:

The ConnectionString property has not been initialized
更复杂的是,当我关闭并重新打开应用程序时,相同的表单现在能够建立连接,并且所有工作都很顺利。这几乎就好像在进行更改后,配置正在锁定自己,不被查询

在更改app.config和尝试使用存储的连接字符串打开连接之间,我需要做些什么

以下是我更改app.config的代码:

        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
     config.ConnectionStrings.ConnectionStrings["myconnstr"].ConnectionString = textboxCS.Text;
        config.Save(ConfigurationSaveMode.Modified);
以下是我测试连接的代码:

        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

        string constr = System.Configuration.ConfigurationManager.ConnectionStrings["myconnstr"].ConnectionString;
        using (SqlConnection connection = new SqlConnection(constr))
        {
            try
            {
                connection.Open();
                connection.Close();
                MessageBox.Show("Successful Connection");
            }
            catch (Exception ee)
            {
                ee.ToString();
                MessageBox.Show("Failed Connection");
            }
            finally
            {
                connection.Close();
            }
这:

string constr = System.Configuration.ConfigurationManager.ConnectionStrings["myconnstr"].ConnectionString; 
需要替换为:

string constr = config.ConnectionStrings.ConnectionStrings["myconnstr"].ConnectionString;
问题是它试图打开ConfigurationManager两次


感谢所有帮助人员

尝试使用单字键,如
ConStr
,而不是
Clock\u Card.Properties.Settings.HH\u ClockCardConnectionString
您是否收到消息“连接失败”?using语句在异常处理程序之外,因此我认为您实际上没有进入connectionOpen。构造函数失败,我想这意味着连接已经打开。@jdweng ok,所以在调试时,我可以转到connection.open();但这正是问题所在exception@PrashantPimpale我已编辑代码以反映正确的连接字符串name@StuartBlack此代码是否在不同的类库中?