2008-08-26 78 views
24

我有一个长时间运行的SQL语句,我想要运行,无论我放在连接字符串的“timeout =”子句中,它总是在30秒后结束。连接字符串中的超时不被遵守

我只是用SqlHelper.ExecuteNonQuery()执行它,并让它照顾打开连接的,等

有别的可能被重写我的超时,或导致SQL服务器忽略它?我在查询上运行了分析器,当我在管理工作室中运行它时,跟踪与我的代码相比没有任何区别。

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

回答

38

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

每个单独的命令有一个单独的“CommandTimeout”,这将是你在找什么。不知道SqlHelper如何实现。

+1

很明显!但是,这并没有阻止我浪费两个小时错过了答案......谢谢! – Aaron 2009-04-16 19:44:59

14

除连接字符串超时之外,尝试使用SQL命令的timeout属性。下面是一个C#示例,使用SqlCommand类。它的等价物应该适用于你正在使用的东西。

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