【问题标题】:How to Cancel SQL open如何取消 SQL 打开
【发布时间】:2014-11-26 07:39:15
【问题描述】:

现在,我的服务器已关闭,上面有我的数据库。就目前而言,当我尝试打开与数据库的连接时,它会在 sql.open() 方法上挂起 20 秒。当服务器启动并运行时它工作正常,但是如果用户选择这样做,有没有办法中断连接的打开?

【问题讨论】:

    标签: c# sql connection


    【解决方案1】:

    您可以ping 服务器以确保它已启动。 More information here.

    【讨论】:

    • ping服务器如何解决OP的问题Is there a way to interrupt the opening of the connection
    • @AndyKorneyev:在打开连接之前进行 ping,获取结果并允许用户相应地打开连接。
    • 对不起 Mangesh,它没有回答我的问题。如果用户的 Internet 连接速度较慢,则打开连接可能需要一些额外的时间。我想给他们取消的机会。你的观点很好,但实际上并没有回答手头的问题。
    • @MangeshGhotage 它仍然没有解决 OP 的问题。例如,如果在您的 ping 成功并且您尝试连接后服务器立即关闭,该怎么办?不要重新发明自行车,还有更简单通用的方法。
    【解决方案2】:

    您应该使用OpenAsync 方法而不是Open。它有CancellationToken 作为参数,可用于请求在连接超时之前放弃操作。

    有关 OpenAsync 的参考,请参阅 MSDN

    在异步打开的情况下,您应该处理StateChange 连接事件以捕捉实际打开连接的时刻。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      相关资源
      最近更新 更多