Хорошо, я спрашивал об этой самой ошибке ранее на этой неделе и получил несколько очень полезных ответов, и, без сомнения, ситуация значительно улучшилась с тех пор, как я начал следовать предложениям.
Однако теперь я использую «правильный», лучший метод для доступа к базе данных. Я все еще получаю эту ошибку в некоторых функциях и не могу заставить ее исчезнуть для этого блока. Вот мой код:
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 и т. Д.), Но использование закрывается после себя, не так ли?
Предложения приветствуются:)