2017-04-10 215 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分鐘? –