我正在使用带有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。 我真的需要一些帮助,我的连接字符串有什么问题吗?
答案 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;