一尘不染

如何修复“ ConnectionString属性尚未初始化”

c#

当我启动应用程序时,我得到: ConnectionString属性尚未初始化。

Web.config:

<connectionStrings>
    <add name="MyDB"
         connectionString="Data Source=localhost\sqlexpress;Initial Catalog=mydatabase;User Id=myuser;Password=mypassword;" />
</connectionStrings>

堆栈是:

System.Data.SqlClient.SqlConnection.PermissionDemand() +4876643
System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +20
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
System.Data.SqlClient.SqlConnection.Open() +122

我对.NET相当陌生,但我没有。我在Google上找到了很多答案,但没有一个能真正解决我的问题。

这意味着什么?我的web.config不好吗?我的功能不好吗?我的SQL配置是否无法正常工作(我正在使用sqlexpress)?

我这里的主要问题是我不确定从哪里开始调试它……任何事情都会有所帮助。

编辑:

错误代码:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.AppSettings["ConnectionString"],
CommandType.Text,
sqlQuery,
sqlParams);

sqlQuery是一个类似“从表中选择*”的查询。sqlParams在这里不相关。

这里的另一个问题是我的公司使用MySQLHelper,而我对此没有可见性(只有一个dll用于帮助程序库)。它在其他项目中一直运行良好,所以我99%的错误不是来自这里。

我想如果没有看到代码就无法调试它,我将不得不等待与创建此帮助程序的人取得联系以获取代码。


阅读 1637

收藏
2020-05-19

共1个答案

一尘不染

引用连接字符串的操作应如下:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString,
CommandType.Text,
sqlQuery,
sqlParams);

ConfigurationManager.AppSettings["ConnectionString"]会在中寻找AppSettings名为的东西ConnectionString,但找不到。这就是为什么您的错误消息指出的"ConnectionString" property has not been initialized原因,因为它正在寻找AppSettingsnamed
的初始化属性ConnectionString

ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString 指示查找名为“
MyDB”的连接字符串。

这里有人在谈论使用web.config连接字符串

2020-05-19