【发布时间】:2015-08-20 01:26:33
【问题描述】:
我想测试数据库可以在几秒钟内连接,例如我想在 3 秒内测试它。 这些代码是我写的。
bool IsCanConnectioned = false;
string connStr = connectionString + ";Connection Timeout=3000";
SqlConnection sqlConnection = new SqlConnection(connStr);
try
{
sqlConnection.Open();
IsCanConnectioned = true;
}
catch
{
IsCanConnectioned = false;
}
finally
{
sqlConnection.Close();
sqlConnection.Dispose();
}
return IsCanConnectioned;
我为这个测试断开了我的网络到数据库, 但是将连接超时设置为 3000 或 3 是无效的。 它会在超过 15 秒的长时间后抛出异常。 (我猜是因为网络超时) 我想在 3 秒内测试它。那么有没有好的方法呢。
可能是它可以启动一个新线程连接数据库,我等待线程3秒,当它没有响应或返回false时,我说数据库无法连接,但是有没有更好的方法?
【问题讨论】:
-
你可以把布尔变量全部清除,只返回true/false,finally块仍然会被执行以清理资源。
-
是的,IsCanConnectioned应该改了,哈哈
-
我不明白那个测试的意义是什么?可能有许多不同的因素会改变测试结果。例如网络负载,如果您在网络高峰期进行测试,您将收到不同的结果。在我看来似乎有点毫无意义。