SqlCommand.CommandTimeout 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定結束執行命令的嘗試並產生錯誤之前的等待時間 (以秒為單位)。 預設值為 30 秒。
public:
virtual property int CommandTimeout { int get(); void set(int value); };
public override int CommandTimeout { get; set; }
member this.CommandTimeout : int with get, set
Public Overrides Property CommandTimeout As Integer
屬性值
等待命令執行的時間 (以秒為單位)。 預設值為 30 秒。
例外狀況
設定的值小於 0。
備註
值為 0 表示 (嘗試執行命令時不會無限期等候) 。
注意
在 CommandTimeout 舊樣式非同步方法呼叫期間,將會忽略 屬性,例如 BeginExecuteReader 。 較新的非同步方法會接受它,例如 ExecuteReaderAsync 。
注意
此屬性是叫用方法期間讀取之所有網路封包的累計逾時 (,) 在命令執行或處理結果期間讀取所有網路讀取。 傳回第一個資料列之後,仍可能會發生逾時,而且不包含使用者處理時間,只有網路讀取時間。
例如,若需要兩個網路封包,則有 Read 30 秒的時間可讀取這兩個網路封包。 如果您再次呼叫 Read ,則會有另 30 秒的時間讀取它所需的任何資料。
// <Snippet1>
using System;
using Microsoft.Data.SqlClient;
public class A
{
public static void Main()
{
string connectionString = "<Your-connection-string-here>";
// Wait for 5 second delay in the command
string queryString = "waitfor delay '00:00:05'";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(queryString, connection);
// Setting command timeout to 1 second
command.CommandTimeout = 1;
try
{
command.ExecuteNonQuery();
}
catch (SqlException e)
{
Console.WriteLine("Got expected SqlException due to command timeout ");
Console.WriteLine(e);
}
}
}
}
// </Snippet1>