SqlCommand.CommandTimeout Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
- Az adatok összekapcsolása és lekérése az ADO-ban.NET
A .NET-keretrendszer Data Provider használata SQL Server - ADO.NET áttekintése