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

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

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


当前回答

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

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

其他回答

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

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

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

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

在我的案例中,唯一的解决方案是将引用添加到系统中。在我的测试项目中的配置也是如此。

我尝试了上面所有的解决方案,试图弄清楚为什么我的一个单元测试无法从一个完美的app.config文件中获取配置。

我有2个对相同程序集的引用,如下所示:

删除(重复)参考在黄色固定它为我。

我希望这对其他人也有用,有段时间我都快疯了。

哇,我花了好长时间才弄明白这个。由于某种原因,在AssemblyInfo.cs中更改属性[assembly: AssemblyCompany("CompanyName")]使此错误消失。我引用了一个具有不同值的属性[assembly: AssemblyCompany("CompanyName")]的项目。我确保两个项目具有相同的属性值,它工作得很好!