1

我正在使用 MySqlConnection 访问远程数据库。它在大多数计算机上都能正常工作。

然而。现在我遇到了 MySqlConnection.Open() 调用永远挂起的情况。我添加了一些写语句来查看它挂在哪里。请参阅下面的代码。语句“_Debug.Write("OpenConnection", "连接成功。");" 永远达不到。也不抛出异常。我试图以管理员身份运行该应用程序,但它仍然挂在这里。这一定是环境问题,因为这在所有其他计算机上都可以正常工作。(我使用的是 .NET Framework 3.5)

有人对此有解决方案吗?但愿如此。亲切的问候 Rob Baaij ---------------------------------------------- ------我的c#源码私有MySqlConnection连接;私有字符串_server =“服务器=5.666.82.191;数据库=未知;Uid=我;密码=mypasswd”;

   public void getUserData()
    {
        using (connection = new MySqlConnection(_server))
        {
            if (OpenConnection())
            {
                getData();

                connection.Close();
            }
        }
    }

     private bool OpenConnection()
    {
        bDatabaseConnectionSucceeded = false;
        try
        {
            _Debug.Write("OpenConnection", "Opening connection now!!");
            connection.Open();
            bDatabaseConnectionSucceeded = true;
            _Debug.Write("OpenConnection", "Connection succeeded.");
            return true;
        }
        catch (MySqlException ex)
        {
            _Debug.Write("OpenConnection", "Connection failed." + ex.Message);
            Debug.WriteLine(ex.Message);
            return false;
        }
    }
4

1 回答 1

0
  1. 你不需要这样做connection.close();这是多余的,因为它是在一个using块中创建的。

  2. 为什么要等待连接打开?为什么不分拆您在当前线程中等待的不同线程?如果它没有响应,您可以放心地放弃,稍后再试。

如果您正在连接到远程服务器并且您失去了互联网连接,这将特别有用。connnection.open()不会无限期挂起,但它会挂起自己的线程一段不希望的时间。

于 2016-01-13T03:23:06.660 回答