Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 处理连接超时错误_Mysql_Vb.net - Fatal编程技术网

Mysql 处理连接超时错误

Mysql 处理连接超时错误,mysql,vb.net,Mysql,Vb.net,有时,当我的服务器关闭或繁忙时,我在连接MySQL时会出现一个错误,说“连接超时”。但是由于错误,程序也崩溃了。我的问题是如何防止崩溃,发生这种情况时最好显示msgbox。(visual basic 2010) 我用这个, Dim connStr As String = "Database=mydatabase;" & _ "Data Source=datasrc;" & _ "User Id=myi

有时,当我的服务器关闭或繁忙时,我在连接MySQL时会出现一个错误,说“连接超时”。但是由于错误,程序也崩溃了。我的问题是如何防止崩溃,发生这种情况时最好显示msgbox。(visual basic 2010)

我用这个,

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时。

当我第二次调用连接函数时,它不起作用,我仍然得到错误,这就是我所说的“执行有意义的操作”负担。当您收到错误的返回时,不要一直尝试使用数据库。也许你应该告诉用户呼叫支持并终止你的程序。