配置命名空间System.Configuration中不存在configurationManager

Moh*_*lah 48 c# sql-server visual-studio-2005

我使用以下命名空间将我的项目连接到sql server:

using System.Configuration;
Run Code Online (Sandbox Code Playgroud)

并且也使用了

string str=System.Configuration.ConfigurationSettings.AppSettings["myconnection"];
SqlConnection oconnection = new SqlConnection(str);
oconnection.Open();
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,发生了错误并显示消息

'System.Configuration.ConfigurationSettings.AppSettings'已过时.此方法已过时,已被'System.Configuration取代!System.Configuration.ConfigurationManager.AppSettings'

但是我没有在该命名空间中找到ConfigurationManager,而且oconnection.Open();消息是

出现InvalidOperationException

没有处理.

我能做什么?

Kha*_*han 78

转到引用,并添加引用 System.Configuration

一旦你完成了这个,你应该能够参考System.Configuration.ConfigurationManager.

string str = System.Configuration.ConfigurationManager.AppSettings["myconnection"];
SqlConnection oconnection = new SqlConnection(str);
oconnection.Open();
Run Code Online (Sandbox Code Playgroud)

从MSDN:ConfigurationManager该类使您可以访问计算机,应用程序和用户配置信息.此类替换了ConfigurationSettings不推荐使用的类.

http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx


编辑:Addiitonal信息

参考了InvalidOperationException.当连接字符串未指定数据源或服务器时,会导致此问题.我猜你的连接字符串是空的.

在web.config中检查连接字符串的位置.如果它属于元素,那么您将需要更改代码以进行搜索ConnectionStrings而不是AppSettings.

string str = System.Configuration.ConfigurationManager.
    ConnectionStrings["myconnection"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)


ksc*_*eck 28

如果解决方案中有多个项目,则必须System.Configuration为每个项目添加引用,ConfigurationManager以便在其中任何项目中工作.

  • 哇,这很奇怪......但这是正确的答案. (2认同)

小智 15

在项目中添加:System.Configuration.dll的引用,然后ConfigurationManager将可用