2013-08-06 122 views
13

默認CommandTimeout值爲30秒。您可以手動通過執行以下爲所有新命令對象設置自定義默認CommandTimeout

Dim cmd As New System.Data.SqlClient.SqlCommand 
cmd.CommandTimeout = 60 

改變的命令對象的實例值是否有指定不同的默認值的方式,使得所有新的命令對象會自動有你的解決方案時,在這個值他們被創建?

+0

[相關問題](http://stackoverflow.com/q/1001713/1178314)(不標誌爲重複,這些問題有一些重大差異伊莫,即使答案對兩者都是一樣的。) –

回答

10

據我所知,沒有辦法改變這個默認值。對於一個SqlCommand的構造碼是這樣的:

public SqlCommand() 
{ 
    this.ObjectID = Interlocked.Increment(ref _objectTypeCount); 
    this._commandTimeout = 30; 
    this._updatedRowSource = UpdateRowSource.Both; 
    this._prepareHandle = -1; 
    this._rowsAffected = -1; 
    this._notificationAutoEnlist = true; 
    GC.SuppressFinalize(this); 
} 

一種可能的解決方法是使用作爲參數給帶有一個SqlCommand作爲參數傳入構造的預定的SqlCommand。

所以,你可以創建一個全球性的SqlCommand(模板)

Dim commandTemplate60 = new SqlCommand() 
commandTemplate60.Timeout = 60 

,然後當你需要60秒

超時
Dim cmd As New System.Data.SqlClient.SqlCommand(commandTemplate60) 

然而,直接設置超時的命令,沒有按't似乎很多工作

相關問題