在我的C#应用程序中,我正在尝试连接到DataConnection。 该应用程序只是一个简单的登录表单,但只要用户单击登录按钮,就会引发引用连接字符串的异常错误。有人可以帮忙吗?
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 Job Logger \ EnviroWaste Job Logger \ bin \ Debug \ EnviroWaste Job Logger.exe'。符号已加载。
System.Configuration.dll中出现'System.Configuration.ConfigurationErrorsException'类型的第一次机会异常
配置系统无法初始化
System.Data.dll中出现'System.TypeInitializationException'类型的第一次机会异常
连接字符串如下所示:
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\UsersDatabase.mdf;Integrated Security=True"
答案 0 :(得分:2)
您收到的错误与内容不正确的配置文件有关。最有可能的是,您的app.config
(如果是桌面版)或web.config
(如果是网络应用)提交了以下错误:
它的第一个元素没有
<configSections>
元素。
检查该文件并确保它看起来像这样
<?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;Integrated Security=True"/>
</connectionStrings>
<!-- Possibly other stuff -->
</configuration>
答案 1 :(得分:0)
也遇到了同样的问题。 Alex提供的解释给出了问题的线索,但这还不够。
app.config显然希望元素以特定顺序出现。
因此,在app.config中,在&lt; configuration&gt;之后,第一部分必须是:
<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>
作为&lt; config&amp; gt。
之后的第一个元素所有我需要的是移动&lt; system.data&gt;部分并将其放在&lt; connectionStrings&gt;之后,以便尊重VS所需的顺序。
所以除了需要&lt; configSections&gt;在&lt; connectionString&gt;之前这些也必须是&lt; config&amp; gt之后的两个第一部分。这就是为我解决的问题。