ConnectionString属性尚未初始化错误

时间:2013-10-14 08:11:57

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

我正在使用带有MySql数据库的asp.net Web应用程序,其中包含以下connetcion字符串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属性。一个未处理的   在执行当前Web期间生成了异常   请求。有关的来源和位置的信息   可以使用下面的异常堆栈跟踪来识别异常。

堆栈跟踪是:

[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。 我真的需要一些帮助,我的连接字符串有什么问题吗?

2 个答案:

答案 0 :(得分:3)

问题不在于连接字符串,而是c#代码尝试从web.config文件中访问它。

我试图使用:

System.Configuration.ConfigurationManager.ConnectionStrings["techConnectionString"].ConnectionString;

但我需要使用:

System.Web.Configuration.WebConfigurationManager.ConnectionStrings["techConnectionString"].ConnectionString;

答案 1 :(得分:0)

将连接字符串更改为

 <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;