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

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);
}

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


当前回答

在我的例子中,我在app.config文件中有两个configsections。删除隐藏在代码行后,应用程序工作正常。

所以如果有人有同样的问题,先检查你是否有重复的配置部分。

其他回答

.Net核心WinForms / WPF / .Net标准类库项目的简单解决方案

步骤1:通过Nuget Manager安装System.Configuration.ConfigurationManager

步骤2:添加一个新的App.Config文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Bodrum" value="Yalikavak" />    
  </appSettings>
</configuration>

step3:获取值

string value = ConfigurationManager.AppSettings.Get("Bodrum");
// value is Yalikavak

如果你从类库中调用它,那么在主项目中添加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支持运行时元素

我在卸载Oracle客户端驱动程序后开始遇到这个问题,它删除了我的C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\machine.config!

从另一台计算机复制它就解决了这个问题。

我只有这个,这是因为我有一个<configuration>元素嵌套在<configuration>元素中。

我在MSTest类中遇到了同样的问题:Marlon Grech在他的文章中说:“必须将元素定义为App.config中的第一个元素。”

确保这是元素下面的第一个元素。我把AppSettings放在第一位。