C# 通过系统检索ConnectionString。配置引发异常
在我的C#应用程序中,我试图连接到数据连接。 应用程序只是一个简单的登录表单,但只要用户单击登录按钮,它就会抛出一个引用连接字符串的异常错误。有人能帮忙吗C# 通过系统检索ConnectionString。配置引发异常,c#,connection-string,C#,Connection String,在我的C#应用程序中,我试图连接到数据连接。 应用程序只是一个简单的登录表单,但只要用户单击登录按钮,它就会抛出一个引用连接字符串的异常错误。有人能帮忙吗 public void userLoginSuccessfull() { try { ////////////////////////////////// // This line is throwing the error ///////////////////////////
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;Integrated 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;Integrated 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:恐怕这个消息可能意味着很多事情。但好消息是,消息(“配置系统未能初始化”)提供了一些在谷歌上搜索的内容。看起来还有很多关于堆栈溢出的问题与此相关,您可能会找到一些东西。