【问题标题】:Timeout not being honoured in connection string连接字符串中不遵守超时
【发布时间】:2010-09-06 20:21:55
【问题描述】:

我想要运行一个长时间运行的 SQL 语句,无论我在连接字符串的“timeout=”子句中添加什么内容,它似乎总是在 30 秒后结束。

我只是使用SqlHelper.ExecuteNonQuery() 来执行它,并让它负责打开连接等。

是否有其他东西可以覆盖我的超时,或导致 sql server 忽略它?我已经对查询运行了探查器,当我在 Management Studio 中运行它时,与在我的代码中运行它时,跟踪看起来没有任何不同。

Management Studio 在大约一分钟内完成查询,但即使将超时设置为 300 或 30000,我的代码仍然会在 30 秒后超时。

【问题讨论】:

    标签: sql-server database timeout


    【解决方案1】:

    您使用什么来设置连接字符串中的超时时间?来自“ConnectionTimeout”的内存,仅影响实际连接到服务器所需的时间。

    每个单独的命令都有一个单独的“CommandTimeout”,这就是您要查找的内容。但不确定 SqlHelper 是如何实现的。

    【讨论】:

    • 如此明显!但这并没有阻止我浪费两个小时错过答案......谢谢!
    【解决方案2】:

    除了连接字符串中的超时,尝试使用SQL命令的超时属性。下面是一个使用 SqlCommand 类的 C# 示例。它的等效项应该适用于您正在使用的内容。

    SqlCommand command = new SqlCommand(sqlQuery, _Database.Connection);
    command.CommandTimeout = 0;
    int rows = command.ExecuteNonQuery();
    

    【讨论】:

      猜你喜欢
      • 2016-12-13
      • 2020-04-04
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 2020-05-02
      • 2020-07-18
      相关资源
      最近更新 更多