C# 通过系统检索ConnectionString。配置引发异常

C# 通过系统检索ConnectionString。配置引发异常,c#,connection-string,C#,Connection String,在我的C#应用程序中,我试图连接到数据连接。 应用程序只是一个简单的登录表单,但只要用户单击登录按钮,它就会抛出一个引用连接字符串的异常错误。有人能帮忙吗 public void userLoginSuccessfull() { try { ////////////////////////////////// // This line is throwing the error ///////////////////////////

在我的C#应用程序中,我试图连接到数据连接。 应用程序只是一个简单的登录表单,但只要用户单击登录按钮,它就会抛出一个引用连接字符串的异常错误。有人能帮忙吗

public void userLoginSuccessfull()
{
    try
    {
        //////////////////////////////////
        // This line is throwing the error
        //////////////////////////////////
        string connString = System.Configuration.ConfigurationManager
            .ConnectionStrings["connectionString"].ConnectionString;

        if (txtUsername.Text != "" & txtPassword.Text != "")
        {
            string queryText = @"SELECT Count(*) FROM Users 
                     WHERE Username = @Username AND Password = @Password";

            using (SqlConnection cn = new SqlConnection(connString))
            using (SqlCommand cmd = new SqlCommand(queryText, cn))
            {
                cn.Open();
                cmd.Parameters.AddWithValue("@Username", txtUsername.Text);
                cmd.Parameters.AddWithValue("@Password", txtPassword.Text);
                int result = (int)cmd.ExecuteScalar();
                if (result > 0)
                {
                    loadUserForm();
                }
            }
        }
    }
    catch (Exception ee)
    {
            Console.WriteLine(ee.StackTrace);
    }
}
这就是错误所在

“EnviroWaste Job Logger.vshost.exe”(CLR v4.0.30319:EnviroWaste Job Logger.vshost.exe):已加载“C:\Users\listm\Documents\Visual Studio” 2013\Projects\EnviroWaste作业记录器\EnviroWaste作业 Logger\bin\Debug\EnviroWaste作业记录器.exe'。已加载符号

System.Configuration.dll中发生了类型为“System.Configuration.ConfigurationErrorsException”的首次意外异常

配置系统初始化失败

System.Data.dll中发生了类型为“System.TypeInitializationException”的第一次意外异常

连接字符串如下所示:

connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\UsersDatabase.mdf;Integr‌​ated Security=True"

您遇到的错误与包含不正确内容的配置文件有关。您的
app.config
(如果是桌面)或
web.config
(如果是web app)文件很可能存在以下错误:

它没有第一个元素
元素

检查那个文件,确保它看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <!-- Section groups, and stuff like userSettings, etc  -->
    </configSections>

    <connectionStrings>
        <add name="connectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\UsersDatabase.mdf;Integr‌​ated Security=True"/>
    </connectionStrings>

    <!-- Possibly other stuff  -->

</configuration>

也遇到了同样的问题。亚历克斯提供的解释为问题提供了线索,但这还不够

app.config显然希望元素以特定的顺序出现

因此,在app.config中,紧接着的第一部分必须是:

<configSections>
    <!-- Section groups, and stuff like userSettings, etc  -->
</configSections>

其次是

<connectionStrings>
    <add name="connectionString" connectionString="...whatever is here..."/>
</connectionStrings>

剩下的就来了

就我而言,我有:

<system.data>
  <DbProviderFactories>
    <remove invariant="System.Data.SQLite.EF6" />
    <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
  </DbProviderFactories>


作为只有部分错误之后的第一个元素,如果我们知道错误行和引发的异常,这将有所帮助。当您收到异常时,您应该做的第一件事是读取错误消息。另外,请注意。。。您正在以纯文本形式存储用户密码。永远不要那样做。这对你的用户是极不负责任的。密码应该是散列的,不应该被检索,即使是程序员也不应该。你的app.config/web.config中的连接字符串是什么样子的?@MattList:恐怕这个消息可能意味着很多事情。但好消息是,消息(“配置系统未能初始化”)提供了一些在谷歌上搜索的内容。看起来还有很多关于堆栈溢出的问题与此相关,您可能会找到一些东西。