13
默認CommandTimeout值爲30秒。您可以手動通過執行以下爲所有新命令對象設置自定義默認CommandTimeout
Dim cmd As New System.Data.SqlClient.SqlCommand
cmd.CommandTimeout = 60
改變的命令對象的實例值是否有指定不同的默認值的方式,使得所有新的命令對象會自動有你的解決方案時,在這個值他們被創建?
默認CommandTimeout值爲30秒。您可以手動通過執行以下爲所有新命令對象設置自定義默認CommandTimeout
Dim cmd As New System.Data.SqlClient.SqlCommand
cmd.CommandTimeout = 60
改變的命令對象的實例值是否有指定不同的默認值的方式,使得所有新的命令對象會自動有你的解決方案時,在這個值他們被創建?
據我所知,沒有辦法改變這個默認值。對於一個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似乎很多工作
[相關問題](http://stackoverflow.com/q/1001713/1178314)(不標誌爲重複,這些問題有一些重大差異伊莫,即使答案對兩者都是一樣的。) –