ConnectionString 属性尚未初始化错误
Posted
技术标签:
【中文标题】ConnectionString 属性尚未初始化错误【英文标题】:The ConnectionString property has not been initialized error 【发布时间】:2013-10-21 18:22:12 【问题描述】:我正在使用带有 mysql DB 的 asp.net Web 应用程序,web.config 具有以下连接字符串:
<add name="techConnectionString" connectionString="server=vm-tmysql01;User Id=user;database=tech;password=pass" providerName="MySql.Data.MySqlClient"/>
这是我使用从 web.config 获取连接字符串的代码:
System.configuration.configurationmanaget.connectionstrings["techConnectionString"].connectionstring;
由于某种原因,我得到了错误:
ConnectionString 属性尚未初始化。一个未处理的 当前网页执行过程中产生异常 要求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈跟踪是:
[InvalidOperationException: The ConnectionString property has not been initialized.]
System.Data.SqlClient.SqlConnection.PermissionDemand() +6316916
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +6296606
System.Data.SqlClient.SqlConnection.Open() +300
我能够通过 Visual Studio 中的数据源连接到数据库并从那里获取 ConnectionString。 我真的需要一些帮助,我的连接字符串有什么问题吗?
【问题讨论】:
尝试更改为 System.configuration.configurationmanagement.connectionstrings["techConnectionString"].connectionstring; 另外,请确保 social.msdn.microsoft.com/Forums/en-US/… 【参考方案1】:问题不在于连接字符串,而在于 c# 代码试图从 web.config 文件中访问它。
我正在尝试使用:
System.Configuration.ConfigurationManager.ConnectionStrings["techConnectionString"].ConnectionString;
但我需要使用:
System.Web.Configuration.WebConfigurationManager.ConnectionStrings["techConnectionString"].ConnectionString;
【讨论】:
啊。没有人抓住它!你应该接受你自己的答案。【参考方案2】:改变连接字符串为
<connectionStrings>
<add name="techConnectionString" connectionString="SERVER=vm-tmysql01; DATABASE=tech; UID=user;
PASSWORD=pass" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
您可以使用System.Configuration
获得连接(您需要添加对System.Configuration
的引用)
var constring =ConfigurationManager.ConnectionStrings["techConnectionString"].ConnectionString;
【讨论】:
以上是关于ConnectionString 属性尚未初始化错误的主要内容,如果未能解决你的问题,请参考以下文章