【问题标题】:C# how to test database can be connected in fast seconds?C#如何测试数据库可以快速连接?
【发布时间】: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时,我说数据库无法连接,但是有没有更好的方法?

【问题讨论】:

标签: c# database


【解决方案1】:

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

如果你想在网络中断的情况下超时,你应该设置一个 tcp 连接并尝试连接。请参阅this answer 了解如何操作。

【讨论】:

【解决方案2】:

我认为您应该检查 sqlConnection.State,它可以具有来自 state enum. 的任何值

也可以设置超时 对于 TCP 超时,请查看 How to make SqlConnection timeout more quickly

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 2010-09-05
    • 2011-10-12
    • 1970-01-01
    相关资源
    最近更新 更多