SqlCommand.CommandTimeout Tulajdonság

Definíció

Lekéri vagy beállítja a várakozási időt (másodpercben), mielőtt befejezi a parancs végrehajtására tett kísérletet, és hibát okozna.

public:
 property int CommandTimeout { int get(); void set(int value); };
public:
 virtual property int CommandTimeout { int get(); void set(int value); };
[System.Data.DataSysDescription("DbCommand_CommandTimeout")]
public int CommandTimeout { get; set; }
public override int CommandTimeout { get; set; }
[<System.Data.DataSysDescription("DbCommand_CommandTimeout")>]
member this.CommandTimeout : int with get, set
member this.CommandTimeout : int with get, set
Public Property CommandTimeout As Integer
Public Overrides Property CommandTimeout As Integer

Tulajdonság értéke

A parancs végrehajtására váró idő másodpercben. Az alapértelmezett érték 30 másodperc.

Megvalósítás

Attribútumok

Megjegyzések

A 0 érték nem jelez korlátot (a parancs végrehajtására tett kísérlet határozatlan ideig várakozik).

Note

A CommandTimeout tulajdonságot figyelmen kívül hagyja a régebbi APM (aszinkron programozási modell) aszinkron metódushívások, például BeginExecuteReader. Ezt az újabb TAP (Task Aszinkron Programming) metódusok, például ExecuteReaderAsynca .

CommandTimeout nincs hatása, ha a parancsot környezeti kapcsolaton keresztül hajtják végre (a SqlConnection a kapcsolati karakterlánc a "context connection=true" paranccsal nyílik meg).

Note

Ez a tulajdonság a parancs végrehajtása vagy az eredmények feldolgozása során beolvasott összes hálózati csomag összesített időtúllépése (a metódus meghívása során beolvasott összes hálózati csomag esetében). Az időkorlát az első sor visszaadása után is előfordulhat, és nem tartalmazza a felhasználó feldolgozási idejét, csak a hálózati olvasási időt.

Ha például 30 másodperces időtúllépésre van szükség, ha Read két hálózati csomagra van szükség, akkor 30 másodperce van mindkét hálózati csomag olvasására. Ha újra hív Read , további 30 másodperce lesz a szükséges adatok beolvasására.

using System;
using System.Data.SqlClient;
///
public class A {
   ///
   public static void Main() {
      string connectionString = "";
      // 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);
         }
      }
   }
}

A következőre érvényes:

Lásd még