System.Configuration.ConfigurationManager.ConnectionStrings没有配置连接字符串

时间:2012-05-25 20:50:46

标签: c# visual-studio configuration connection-string default

每当我尝试在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"]在哪里设置?和/或我该如何解决这个问题?

2 个答案:

答案 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文件。内容是否符合您的预期?

相关问题