Mysql 处理连接超时错误
有时,当我的服务器关闭或繁忙时,我在连接MySQL时会出现一个错误,说“连接超时”。但是由于错误,程序也崩溃了。我的问题是如何防止崩溃,发生这种情况时最好显示msgbox。(visual basic 2010) 我用这个,Mysql 处理连接超时错误,mysql,vb.net,Mysql,Vb.net,有时,当我的服务器关闭或繁忙时,我在连接MySQL时会出现一个错误,说“连接超时”。但是由于错误,程序也崩溃了。我的问题是如何防止崩溃,发生这种情况时最好显示msgbox。(visual basic 2010) 我用这个, Dim connStr As String = "Database=mydatabase;" & _ "Data Source=datasrc;" & _ "User Id=myi
Dim connStr As String = "Database=mydatabase;" & _
"Data Source=datasrc;" & _
"User Id=myid;Password=mypass"
Dim connection As New MySqlConnection(connStr)
connection.Open() // I get error here
一种可能发生这种情况的方法是,如果您没有正确处理您的连接。例如,假设一个异常是由于sql代码中的一个问题引发的,它被捕获了,但捕获的方式是您从未调用
connection.Close()
。最终,您将耗尽可用的连接,并且您的connection.Open()
调用将在尝试连接时失败并超时。为了避免这种情况,您应该使用“使用”块创建连接,如下所示:
Using connection As New MySqlConnection(connStr), _
command As New MySqlCommand("sql statement here")
connection.Open()
End Using ''# connection is guaranteed to be closed here, even if an exception is thrown
如果不想看到ThreadExceptionDialog,则需要在代码中捕获异常。例如:
Public Function ConnectToDbase() As Boolean
Try
connection.Open()
'--- etc
Return True
Catch ex As TimeoutException
MessageBox.Show(ex.Message, "Could not connect to the database")
Return False
End Try
End Function
现在的负担是使用ConnectToDbase()执行有意义的操作的代码,当它返回False时。当我第二次调用连接函数时,它不起作用,我仍然得到错误,这就是我所说的“执行有意义的操作”负担。当您收到错误的返回时,不要一直尝试使用数据库。也许你应该告诉用户呼叫支持并终止你的程序。