每当我尝试在C#代码中运行任何内容时,我都会收到以下错误:
System.InvalidOperationException was unhandled by user code
Message=No connection string configured
它发生在以下代码中。
if (System.Configuration.ConfigurationManager.ConnectionStrings["DBContext"] == null)
{
throw new System.InvalidOperationException("No connection string configured");
}
connectionString = string.Format("{0};Application Name={1}", System.Configuration.ConfigurationManager.ConnectionStrings["DBContext"].ConnectionString, this.applicationName);
所以System.Configuration.ConfigurationManager.ConnectionStrings["DBContext"]
为空。我无法找到任何关于它的信息,一个可能相关的问题:How to fix "The ConnectionString property has not been initialized"表明配置文件可能有问题。此刻我恐怕不知何故意外删除了配置文件。
另外,请在documentation:
中阅读此内容Returns a ConnectionStringSettingsCollection object that contains the contents of the ConnectionStringsSection object for the current application's default configuration.
它包含默认值,所以我在配置文件中倾向于我必须意外删除它。
如果我是对的,我不知道它应该是哪一个,应该包含哪些内容。如果我错了,我不知道它来自哪里。 那么System.Configuration.ConfigurationManager.ConnectionStrings [" DBContext"]在哪里设置?和/或我该如何解决这个问题?
答案 0 :(得分:6)
.NET中的连接字符串来自配置文件 - 用于控制台/ Windows应用程序的app.config或用于Web应用程序的web.config。
您可以通过右键单击项目并添加正确的文件,将新配置文件添加到项目中,并确保在该配置文件中包含以下部分:
<configuration>
<connectionStrings>
<add name="DBContext" connectionString="data source=.\SQLEXPRESS;Initial Catalog=databasename;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
</connectionStrings>
...
</configuration>
当然,您需要使用适合您环境的内容替换连接字符串(例如,将databasename替换为您的数据库名称)。
答案 1 :(得分:1)
可能是您的项目没有引用正确的配置文件。您应该只有一个app.config文件。
您需要确保将app.config添加到生成.exe文件的项目中。
转到输出目录并打开.exe.config文件。内容是否符合您的预期?