SqlCommand.CommandTimeout Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia czas oczekiwania (w sekundach) przed zakończeniem próby wykonania polecenia i wygenerowania błędu. Wartość domyślna to 30 sekund.
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
Wartość właściwości
Czas w sekundach oczekiwania na wykonanie polecenia. Wartość domyślna to 30 sekund.
Wyjątki
Zestaw wartości jest mniejszy niż 0.
Uwagi
Wartość 0 oznacza brak limitu (próba wykonania polecenia będzie czekać na czas nieokreślony).
Uwaga
Właściwość CommandTimeout zostanie zignorowana podczas wywołań metod asynchronicznych w starym stylu, takich jak BeginExecuteReader. Będzie on honorowany przez nowsze metody asynchroniczne, takie jak ExecuteReaderAsync.
Uwaga
Ta właściwość jest skumulowanym limitem czasu (dla wszystkich pakietów sieciowych, które są odczytywane podczas wywołania metody) dla wszystkich odczytów sieci podczas wykonywania polecenia lub przetwarzania wyników. Przekroczenie limitu czasu może nadal występować po zwróceniu pierwszego wiersza i nie obejmuje czasu przetwarzania użytkownika, tylko czasu odczytu w sieci.
Na przykład z 30-sekundowym limitem czasu, jeśli Read wymaga dwóch pakietów sieciowych, ma 30 sekund do odczytania obu pakietów sieciowych. Jeśli wywołasz Read wywołanie ponownie, będzie miało kolejne 30 sekund na odczytanie wszystkich potrzebnych danych.
// <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>