Aracılığıyla paylaş


SqlCommand.CommandTimeout Özellik

Tanım

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);
         }
      }
   }
}

Şunlara uygulanır

Ayrıca bkz.