2017-04-10 328 views
0

在一个控制台应用程序中设置连接超时我有一个连接字符串是这样的:SQL:连接字符串

Data Source=localhost;Initial Catalog=database_name;Integrated Security=True;Connect Timeout=100 

我读过here,我需要Connect Timeout添加到连接字符串设置超时,但如果我运行一个包含

WAITFOR DELAY '00:00:40'; 

我会得到一个超时异常的查询,所以它似乎从连接字符串timeoput被忽略。那么如何在连接字符串(而不是连接或命令对象)中设置超时?

+0

你是怎么用这个的?通过SqlConnection对象?有一个超时属性,您可以设置代替.... – Milney

+0

但我需要设置连接字符串中的超时时间,因为此字符串将用于创建多个连接... –

+0

连接超时只在字符串中影响连接到服务器需要多长时间,而不是执行查询。唯一的方法是将其设置在SqlConnection和SqlCommand对象上。对不起 – Milney

回答

2

有两个关于连接到SQL /命令超时 - 有一个连接超时,影响连接多久愿意等待,当你试图打开它,和命令超时影响有多长正在执行的单个命令将等待。

您需要调整其中的第二个 - 例如,在SqlCommand对象上设置CommandTimeout属性。

+0

,有没有办法在连接字符串中设置命令超时? –

+0

我从来没有听说过。但这并不意味着没有。你不是说它有效吗(即抛出超时异常)? –

+0

@BudaGavril - 不,没有。默认30秒不是不合理的。它应该是一个*例外情况,您需要设置一个更长/无限的超时时间。 –

0

它不会被忽略,那就是行为......如果超时,它会抛出异常。如果没有超时,它会运行直到查询返回。

只要使用try-catch块并在抛出异常时执行所需操作。

+0

好的,但有没有办法在连接字符串中将超时设置为10分钟? –