Bagikan melalui


SqlCommand.CommandTimeout Properti

Definisi

Mendapatkan atau mengatur waktu tunggu (dalam detik) sebelum mengakhiri upaya untuk menjalankan perintah dan menghasilkan kesalahan.

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

Nilai Properti

Waktu dalam detik untuk menunggu perintah dijalankan. Defaultnya adalah 30 detik.

Penerapan

Atribut

Keterangan

Nilai 0 menunjukkan tidak ada batas (upaya untuk menjalankan perintah akan menunggu tanpa batas waktu).

Catatan

Properti CommandTimeout akan diabaikan oleh panggilan metode asinkron APM (Model Pemrograman Asinkron) yang lebih lama seperti BeginExecuteReader. Ini akan dihormati oleh metode TAP (Pemrograman Asinkron Tugas) yang lebih baru seperti ExecuteReaderAsync.

CommandTimeouttidak berpengaruh ketika perintah dijalankan terhadap koneksi konteks (SqlConnectiondibuka dengan "context connection=true" dalam string koneksi).

Catatan

Properti ini adalah batas waktu kumulatif (untuk semua paket jaringan yang dibaca selama pemanggilan metode) untuk semua pembacaan jaringan selama eksekusi perintah atau pemrosesan hasil. Waktu habis masih dapat terjadi setelah baris pertama dikembalikan, dan tidak menyertakan waktu pemrosesan pengguna, hanya waktu baca jaringan.

Misalnya, dengan waktu habis 30 detik, jika Read memerlukan dua paket jaringan, maka ia memiliki 30 detik untuk membaca kedua paket jaringan. Jika Anda memanggil Read lagi, itu akan memiliki 30 detik lagi untuk membaca data apa pun yang diperlukannya.

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

Berlaku untuk

Lihat juga