处理连接超时错误

时间:2009-12-13 04:31:12

标签: mysql vb.net

有时当我的服务器出现故障或忙碌时,我在连接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

2 个答案:

答案 0 :(得分:1)

如果您不想看到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时执行有意义的操作的代码。

答案 1 :(得分:0)

如果您没有正确处理连接,可能会发生这种情况。例如,假设由于您的sql代码中存在问题而引发异常,并且它被捕获,但是以一种永远不会调用connection.Close()的方式捕获。最终,您的可用连接将用完,connection.Open()调用将失败并在尝试连接时超时。为避免这种情况,您应该使用“using”块创建连接,如下所示:

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