gpt4 book ai didi

sql - ExecuteReader 需要一个打开且可用的连接。连接的当前状态是关闭的

转载 作者:行者123 更新时间:2023-12-04 05:27:54 25 4
gpt4 key购买 nike

好的,我在本周早些时候询问了这个非常错误的问题,并得到了一些非常有用的答案,毫无疑问,自从我开始遵循这些建议以来,情况已经有了很大的改善。

但是,现在我正在使用“正确”的最佳实践方法来访问数据库,但在某些函数上仍然出现此错误,并且我无法让它在该块中消失。这是我的代码:

    Public Shared Function doesBasketExist(ByVal baskethash As String) As Boolean
Dim _r As Boolean
Using db As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("pitstopConnectionString").ConnectionString)
Using cmd As New SqlCommand("doGetBasketByHash", db)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@baskethash", baskethash)
Using dr As SqlDataReader = cmd.ExecuteReader()
If dr.HasRows() = True Then
_r = True
Else
_r = False
End If
dr.Close()
End Using
End Using
End Using
Return _r
End Function

现在无论我做什么,我都会得到: ExecuteReader 需要一个开放且可用的连接。连接的当前状态是关闭的。在这个连接上。我确实有在这个类中调用相同对象的函数(cmd、dr 等)但是 Using 在它自己之后关闭不是吗?

欢迎提出建议:)

最佳答案

我想你忘记打开连接了。

在这一行之前打开它:

cmd.Parameters.AddWithValue("@baskethash", baskethash)

使用 -
db.Open()

关于sql - ExecuteReader 需要一个打开且可用的连接。连接的当前状态是关闭的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/839014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com