假设我有我的客户端应用程序,它与MySQL服务器建立连接。太棒了。我没有把它作为一个线程来实现。我只使用MySQLConnection类。
现在让我们说吉姆对办公室真的不小心意外地重新启动MySQL服务器而没有先征得许可。
我想知道断开连接的时间,以便客户端应用程序知道并且用户不会收到很多错误。
我可以想出几种方法来检查这个,但我不知道它们是否会起作用,即使它们在设计上很优雅。我想知道你们所认为的最合适的方式。
非常感谢任何帮助。
修改:此问题已在评论中得到解答。谢谢你的阅读。
答案 0 :(得分:0)
我有一个“偶尔连接”的应用程序并遇到了这个问题。我需要知道用户是否有网络连接,如果他们有,他们是否有VPN连接,允许他们连接到SQL Server数据库。我使用计时器每分钟一次ping数据库服务器以检查其可达性。
public NetworkStatus GetNetworkStatus()
{
NetworkStatus netStatus = new NetworkStatus();
netStatus.NetworkAvailable = NetworkInterface.GetIsNetworkAvailable();
try
{
if (netStatus.NetworkAvailable)
{
Ping p = new Ping();
// Create a buffer of 32 bytes of data to be transmitted.
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
PingReply reply = p.Send(DB_SERVER_NAME, 1200, buffer);
netStatus.PublisherPingSuccess = reply.Status == IPStatus.Success;
}
}
catch (Exception ex)
{
netStatus.PublisherPingSuccess = false;
netStatus.Error = ex;
}
return netStatus;
}