共用方式為


SqlCommand.CommandTimeout 屬性

定義

取得或設定結束執行命令的嘗試並產生錯誤之前的等待時間 (以秒為單位)。 預設值為 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>

適用於