错误:连接未关闭。连接的当前状态是开放的。为什么会这样?

时间:2014-03-18 11:07:40

标签: vb.net

首先欢迎来到我的问题谢谢你看看,基本上我收到了错误:

  

连接未关闭。连接的当前状态是打开的。

即使我在代码中明确说明连接正在以Connection.Close()结束,所以我不明白为什么会这样做,也许它在我想要做的事情的错误位置但是我真的没有任何线索,所以也许另一双眼睛可能发现了我曾经尝试if connection.state = open then connection.close()和类似事情的错误,但这个错误只是出现而不管我做了什么。我的代码如下:

 Protected Sub OkBtn_Click(sender As Object, e As System.EventArgs) Handles OkBtn.Click
    Dim ThisDay As Date = Date.Today
    Dim ThisUser As String
    ThisUser = Request.QueryString("")
    If ThisUser = "" Then
        ThisUser = "Chris Heywood"
    End If
    Dim transType As String
    transType = Request.QueryString("")
    If transType = "" Then
        transType = "Fire"
    End If
    connection.Open()
    command = New SqlCommand("Select * From FireTest Where [Trans Type]='Fire' AND Convert(date,[Date],103)=CONVERT(Date,GETDATE(),103)", connection)
    datareader = command.ExecuteReader()
    If datareader.HasRows = True Then
        datareader.Close()
        connection.Close()
        Exit Sub
    End If
    connection.Open()
    command = New SqlCommand("Insert Into FireTest([Date],[Type],[Comments],[Completed By],[Trans Type]) Values (@Date,@Type,@Comments,@CompletedBy, @TransType)", connection)
    command.Parameters.AddWithValue("@Date", ThisDay)
    command.Parameters.AddWithValue("@Type", DropDownList1.SelectedValue)
    command.Parameters.AddWithValue("@Comments", TextBox1.Text)
    command.Parameters.AddWithValue("@CompletedBy", ThisUser)
    command.Parameters.AddWithValue("@TransType", transType)
    command.ExecuteNonQuery()
    connection.Close()
    Response.Redirect("~/Production/Navigator.aspx")
End Sub

这是从ASP.NET前端的VB.NET代码隐藏,感谢您阅读至少答案将标记它到达我的解决方案。

1 个答案:

答案 0 :(得分:1)

是否有某种connection.Dispose()命令可以使用?我自己并不使用这种特定的语言相当新,但你永远不知道,可以工作......

我会评论,但显然我需要更多声誉!

编辑:您可以在代码中打开连接,然后再打开它而不关闭它,因为Close方法在if语句中?