0

我正在使用带有 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 属性尚未初始化。在执行当前 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。我真的需要一些帮助,我的连接字符串有问题吗?

4

2 回答 2

3

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

我试图使用:

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

但我需要使用:

System.Web.Configuration.WebConfigurationManager.ConnectionStrings["techConnectionString"].ConnectionString;
于 2013-10-15T21:08:50.380 回答
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;
于 2013-10-14T08:22:14.160 回答