Vb.net 如果出现错误,请关闭连接';连接未关闭';?
我的Vb.net 如果出现错误,请关闭连接';连接未关闭';?,vb.net,Vb.net,我的vb.net应用程序显示错误 连接未关闭。连接的当前状态为打开 这是我的密码。请帮助我更正错误: Private Sub saveBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles saveBtn.Click addSubject() End Sub Private Function addSubject() As Boolean
vb.net
应用程序显示错误
连接未关闭。连接的当前状态为打开
这是我的密码。请帮助我更正错误:
Private Sub saveBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles saveBtn.Click
addSubject()
End Sub
Private Function addSubject() As Boolean
Dim cmd As New SqlCommand
Dim ok As Boolean = False
cmd.Connection = con
cmd.CommandText = " INSERT INTO Subjects(subject_name) VALUES(@inn)"
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("inn", subjectTxt.Text)
Try
con.Open()
cmd.ExecuteNonQuery()
ok = True
Catch ex As Exception
MessageBox.Show(ex.Message, "Add failed")
ok = False
End Try
cmd.Dispose()
con.Close()
Return ok
con.Close()
End Function
在语句中包装sqlcommand。不要手动调用close或dispose。尝试在打开连接之前检查连接状态,如果连接已经打开,则无需打开:
If con.State <> ConnectionState.Open Then
con.Open()
End If
如果con.State ConnectionState.打开,则
con.Open()
如果结束
这将帮助您避免当前的异常
无论如何,这个问题的根本原因可能在其他地方。因为,您的代码最后已经尝试关闭连接,所以您的程序似乎还有另一部分没有正确关闭连接
可能的解决方案是不共享您的连接对象,在每次需要时实例化新连接,并使用@DeveloperGuo指出的语句将其环绕。在您以前的代码中,可能有一个打开的连接无法关闭 此连接状态检查器可以帮助您:
If connection.State <> 1
connection.Open()
End IF
If连接。状态1
connection.Open()
如果结束