我有一个长时间运行的SQL语句,我想运行,无论我在连接字符串的"timeout ="子句中放置什么,它似乎总是在30秒后结束.
我只是SqlHelper.ExecuteNonQuery()
用来执行它,并让它来处理打开连接等.
是否有其他东西可以覆盖我的超时,或导致SQL服务器忽略它?我在查询上运行了探查器,当我在管理工作室中运行它时,跟踪看起来没什么不同,而不是我的代码.
管理工作室在大约一分钟内完成查询,但即使超时设置为300或30000,我的代码仍会在30秒后超时.
你用什么来设置连接字符串中的超时?来自"ConnectionTimeout"的内存,仅影响实际连接到服务器所需的时间.
每个单独的命令都有一个单独的"CommandTimeout",这将是你正在寻找的.不知道SqlHelper是如何实现的.
除了连接字符串中的超时之外,请尝试使用SQL命令的timeout属性.下面是一个C#示例,使用SqlCommand类.它的等效应适用于您正在使用的内容.
SqlCommand command = new SqlCommand(sqlQuery, _Database.Connection); command.CommandTimeout = 0; int rows = command.ExecuteNonQuery();