【问题标题】:The ConnectionString property has not been initialized errorConnectionString 属性尚未初始化错误
【发布时间】: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。 我真的需要一些帮助,我的连接字符串有什么问题吗?

【问题讨论】:

标签: c# mysql asp.net connection-string invalidoperationexception


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2014-12-03
    相关资源
    最近更新 更多