SqlCommand.CommandTimeout Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Komut yürütme girişimini sonlandırmadan ve hata oluşturmadan önce bekleme süresini (saniye cinsinden) alır veya ayarlar.
public:
virtual property int CommandTimeout { int get(); void set(int value); };
public:
property int CommandTimeout { int get(); void set(int value); };
public override int CommandTimeout { get; set; }
[System.Data.DataSysDescription("DbCommand_CommandTimeout")]
public int CommandTimeout { get; set; }
member this.CommandTimeout : int with get, set
[<System.Data.DataSysDescription("DbCommand_CommandTimeout")>]
member this.CommandTimeout : int with get, set
Public Overrides Property CommandTimeout As Integer
Public Property CommandTimeout As Integer
Özellik Değeri
Komutun yürütülmesini beklemek için saniye cinsinden süre. Varsayılan değer 30 saniyedir.
Uygulamalar
- Öznitelikler
Açıklamalar
0 değeri sınır olmadığını gösterir (komut yürütme girişimi süresiz olarak bekler).
Not
CommandTimeout özelliği gibi BeginExecuteReadereski APM (Zaman Uyumsuz Programlama Modeli) zaman uyumsuz yöntem çağrıları tarafından yoksayılır. gibi ExecuteReaderAsyncdaha yeni TAP (Görev Zaman Uyumsuz Programlama) yöntemleri tarafından kabul edilir.
CommandTimeoutbir bağlam bağlantısında (bağlantı dizesi "context connection=true" ile açılmış) SqlConnection komut yürütürken hiçbir etkisi olmaz.
Not
Bu özellik, komut yürütme veya sonuçları işleme sırasında tüm ağ okumaları için toplu zaman aşımıdır (bir yöntemin çağrılması sırasında okunan tüm ağ paketleri için). İlk satır döndürüldükten sonra da zaman aşımı oluşabilir ve kullanıcı işlem süresini içermez, yalnızca ağ okuma zamanı içerir.
Örneğin, 30 saniyelik bir zaman aşımıyla Read , iki ağ paketi gerekiyorsa, her iki ağ paketlerinin de okunmasının 30 saniyesi vardır. Yeniden ararsanız Read , gereken verileri okumak için 30 saniye daha gerekir.
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);
}
}
}
}