“连接字符串”属性尚未初始化错误
本文关键字:初始化 错误 属性 连接 字符串 连接字符串 | 更新日期: 2023-09-27 18:35:25
我正在使用带有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;
由于某种原因,我收到错误:
属性尚未初始化。一个未处理的 在执行当前 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。我真的需要一些帮助,我的连接字符串有问题吗?
问题不在于连接字符串,而在于 c# 代码试图从 web.config 文件访问它。
我试图使用:
System.Configuration.ConfigurationManager.ConnectionStrings["techConnectionString"].ConnectionString;
但我需要使用:
System.Web.Configuration.WebConfigurationManager.ConnectionStrings["techConnectionString"].ConnectionString;
将连接字符串更改为
<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;