当 我 启动 应用 程序 时 , 我 得到 :* * * 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 是 一 个 类似 于 " select * from table " 的 查询 。 sqlParams 在 这里 不 相关 。
这里 的 另 一 个 问题 是 我 的 公司 使用 MySQLHelper , 而 我 对 它 没有 可见 性 ( 只有 一 个 用于 帮助 器 库 的 dll ) 。 它 在 其他 项目 中 工作 得 很 好 , 所以 我 有 99% 的 把握 错误 不是 来自 这里 。
我 想 如果 没有 办法 在 不 看到 代码 的 情况 下 调试 它 , 我 将 不得 不 等待 与 创建 此 助手 的 人 取得 联系 , 以便 获得 代码 。
8条答案
按热度按时间iklwldmw1#
引用连接字符串的方式如下:
ConfigurationManager.AppSettings["ConnectionString"]
将在AppSettings
中查找名为ConnectionString
的内容,但找不到。这就是错误消息指示"ConnectionString" property has not been initialized
的原因,因为它正在查找名为ConnectionString
的AppSettings
的初始化属性。ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString
指示查找名为“MyDB”的连接字符串。Here is someone talking about using web.config connection strings
qco9c6ql2#
当 数据 源 试图 绑定 到 数据 但 由于 找 不 到 连接 字符 串 而 无法 绑定 时 , 您 会 得到 此 错误 。 根据 我 的 经验 , 这 通常 不 是 由于 web . config 中 的 错误 ( 尽管 我 不 能 100% 确定 这 一 点 ) 。
如果 您 是 以 程序 设计 方式 指派 数据 来源 ( 例如 SqlDataSource ) 或 建立 查询 ( 也 就是 使用 SqlConnection/SqlCommand 组合 ) , 请 确定 已 指派 ConnectionString 。
中 的 每 一 个
如果 您 要 将 数据 系 结 项目 链接 至 数据 来源 ( 例如 , 将 GridView 或 ComboBox 链接 至 SqlDataSource ) , 请 确定 已 将 数据 来源 指派 给 其中 一 个 连接 字串 。
发布 您 的 代码 ( 为了 数据 绑定 元素 和 web.config 的 安全 ) , 我们 可以 查看 它 。
ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString
( 如果 ConnectionString 是 连接 字符 串 的 名称 ) 。31moq8wy3#
*AppSettings*中的连接字符串不是。
您要查找的内容位于:
8yoxcaq74#
我在一个Web API Asp Net Core项目中遇到了同样的问题。我按照建议将代码中的引用更改为:
但添加对System.Configuration.dll的引用导致错误“引用无效或不受支持”。
为了解决这个问题,我不得不使用NuGet(Tools -〉Nuget Package-〉Manage Nuget packages for the solution)下载软件包System.Configuration.ConfigurationManager
icnyk63a5#
我发现当我创建
Sqlconnection = new SqlConnection()
时,我忘记传递我的connectionString
变量,这就是为什么我改变了初始化connectionString
的方式(什么也没有改变)。如果你和我一样,别忘了把你的字符串连接传递给
SqlConnection
参数。Sqlconnection = new SqlConnection("ConnString")
x9ybnkn66#
这对我很有效:
fcy6dtqo7#
如果您尝试了上面提到的每一个答案,则有可能您正在基于错误的sqlconnection检查条件创建一个新的SQL连接。
返回新的SQL连接(如果以前未初始化)的常用方法,否则将返回现有连接
一旦您关闭getUser()方法中的连接,sqlconnection对象中就会有两个更改:1.状态从“打开”更改为“关闭”2. ConnectionString属性将更改为“”
因此,当您在getProduct()中调用GetSqlconnection()方法时,根据GetSqlconnection()中的if-Condition,它将返回sqlConnection的现有对象,但状态为'Closed',ConnectionString为““。因此,在connection.open()中,它将抛出异常,因为connectionstring为空。
要在重用sqlConnection时解决此问题,我们应该在GetSqlconnection()方法中进行如下检查:
lmvvr0a88#
使用[]代替(),如下例所示。