doo*_*urt 8 sql sqlconnection sqldatareader
好的,我在本周早些时候就这个错误提出了问题并得到了一些非常有用的答案,毫无疑问,自从我开始遵循这些建议后,情况有了很大改善.
但是,现在我使用'正确',最佳实践方法来访问数据库我仍然在某些函数上得到此错误,我不能让它为该块消失.这是我的代码:
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
Run Code Online (Sandbox Code Playgroud)
现在无论我做什么,我都会得到:ExecuteReader需要一个开放且可用的连接.连接的当前状态已关闭.在这个连接上.我确实在这个类中有与对象相同的函数(cmd,dr等),但是使用后自动关闭它不是吗?
建议欢迎:)
Kir*_*tan 14
我想你忘了打开连接.
在此行之前打开它:
cmd.Parameters.AddWithValue("@baskethash", baskethash)
Run Code Online (Sandbox Code Playgroud)
使用 -
db.Open()
Run Code Online (Sandbox Code Playgroud)