C#如何测试数据库可以在极短的时间内连接?

C#如何测试数据库可以在极短的时间内连接?,c#,database,C#,Database,我想测试数据库是否可以在几秒钟内连接,例如,我想在3秒钟内测试它。 我写了这些代码 bool IsCanConnectioned = false; string connStr = connectionString + ";Connection Timeout=3000"; SqlConnection sqlConnection = new SqlConnection(connStr); try {

我想测试数据库是否可以在几秒钟内连接,例如,我想在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时,我说数据库无法连接,但是有更好的方法吗?

我想你应该检查sqlConnection.State,它可以从

还要设定时间
有关TCP超时,请查看

您说您断开了此测试的网络,但当您可以访问安装了SqlServer的服务器时,ConnectionTimeout适用。否则会涉及TCP超时,默认情况下为15秒


如果要在网络关闭时超时,则应设置tcp连接并尝试连接。请参阅如何执行。

您可以一起删除布尔变量,只返回true/false,最终块仍将执行以清除资源。可能重复的是,应更改IsCanConnectiond,hahaI不明白该测试的意义是什么?可能有许多不同的因素会改变测试结果。e、 g.网络负载,如果您在网络峰值进行测试,您将收到不同的结果。在我看来似乎有点毫无意义。我想在3秒钟内返回结果,无论是网络原因还是数据库原因。这个问题帮助了我,哈哈