我目前正在创建一个登录表单,并有以下代码:

string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
try
{
    using (OdbcConnection connect = new OdbcConnection(connectionString))
    {
        connect.Open();
        OdbcCommand cmd = new OdbcCommand("SELECT username, password FROM receptionist", connect);
        OdbcDataReader reader = cmd.ExecuteReader();

        if (username_login.Text == username && password_login.Text == password)
        {
            this.Hide();
            MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            this.Close();
        }
        else 
            MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        connect.Close();
    }
}
catch (OdbcException ex)
{
    MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

但每当我尝试输入用户名和密码时,就会出现一个名为“配置系统初始化失败”的错误。这是什么问题,我怎么解决它?


当前回答

我重启了Visual studio甚至整个PC。 我清理了项目,重建,并删除了bin文件。

没有任何帮助,直到我把配置从x64改为x86。 它在x86上工作,但当我把它改回来时,它也工作了!

其他回答

正如@Flash Gordon在他的评论中提到的,你需要在App.config文件中定义任何自定义标记(作为一个节),在<configSections>下。例如,你在一个测试自动化项目中使用SpecFlow并添加< SpecFlow >标签,那么App.config的最简单版本将如下所示:

同样的问题,我解决了我的问题,从App.config删除version ="v3.5"。

之前

 <?xml version="1.0" encoding="utf-8"?>
  <configuration>

  <startup>

 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
 </startup>
 <supportedRuntime version="v3.5" />//Remove this
</configuration>

解决方案

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <startup>

    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
  </startup>
  </configuration>

下面是如何使用版本

MSDN支持运行时元素

如果你有用户范围设置,你也可以有一个用户。配置文件在[Userfolder]\AppData\Local\[ProjectName]文件夹中的某处。

如果您稍后删除用户范围设置的用户。Config不会自动被删除,它的存在可能会导致相同的错误消息。删除文件夹对我有用。

经过长时间的搜索,我意识到,这个异常有一个内部异常,它确切地告诉你配置文件出了什么问题

删除c:\Users\username\AppData\Local\appname和c:\ users \username\ appdata \ roam \appname目录下的旧配置文件,然后尝试重新启动应用程序。