【问题标题】:sqlclient - connection timeout or command timeoutsqlclient - 连接超时或命令超时
【发布时间】:2010-05-05 15:49:03
【问题描述】:

我在运行查询时收到以下错误。

*

System.Data.SqlClient.SqlException:超时已过期。
在操作完成之前超时时间已过或服务器没有响应。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常, Boolean breakConnection)

*

这是连接超时还是命令超时?

TIA

【问题讨论】:

    标签: .net sqlclient connection-timeout command-timeout


    【解决方案1】:

    看起来像命令超时。如果您有连接超时,您将从堆栈跟踪中看到它是从对 SqlConnection.Open 的调用中抛出的。任何其他超时都将是命令超时。

    【讨论】:

    • 即使 System.Data.SqlClient.*SqlConnection* 中发生错误?误导
    【解决方案2】:

    您将需要发布更多代码来说明您的连接方式以及您尝试执行的内容。命令超时会传播到 sqlexception 超时错误,因此可能是这样。

    您尝试运行的命令或查询是什么? 一旦发布,我们可能会帮助优化它。您还可以尝试为连接和命令对象设置超时时间。增加它,看看它是否有帮助。

    【讨论】:

    • @JonH - 如果条件匹配 int 数据类型的 ID 但使用日期范围时超时,则查询有效。因此,连接有效,但错误并未提供有关超时时间的线索。
    【解决方案3】:

    从 SSMS 运行查询需要多长时间?

    如果速度很快,那么你的问题可能是死锁。

    您是否正在使用任何交易?您是否与其他应用程序/用户共享数据库?

    更多信息将非常有用。

    【讨论】:

    • 当使用日期时间类型的变量时,查询在 SSMS 中运行良好,但如果我直接将日期的值替换为 varchar,那么它需要永远完成。例如:1)更新日期> @date(工作正常)。 2) 更新日期 > '01/05/2010' (永远需要)。转换为日期时间需要什么?
    • @BhehaFry 您是否尝试过在查询中进行 CAST 以将字符串转换为日期时间? ie Select Col1, Col2, col3 from tbl where myDate = CAST(@datestring as datetime) 另外,如果您使用的是 SELECT *,请不要。
    猜你喜欢
    • 2017-07-02
    • 1970-01-01
    • 2012-05-23
    • 2021-09-06
    • 2022-01-21
    • 2011-02-14
    • 2019-03-07
    • 2022-09-29
    • 2013-08-07
    相关资源
    最近更新 更多