Bagikan melalui


SqlCommand.CommandTimeout Properti

Definisi

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

public:
 virtual property int CommandTimeout { int get(); void set(int value); };
public override int CommandTimeout { get; set; }
member this.CommandTimeout : int with get, set
Public Overrides Property CommandTimeout As Integer

Nilai Properti

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

Pengecualian

Nilai yang ditetapkan kurang dari 0.

Keterangan

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

Catatan

Properti CommandTimeout akan diabaikan selama panggilan metode asinkron gaya lama seperti BeginExecuteReader. Ini akan dihormati oleh metode asinkron yang lebih baru seperti ExecuteReaderAsync.

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 termasuk waktu pemrosesan pengguna, hanya waktu baca jaringan.

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

// <Snippet1>
using System;
using Microsoft.Data.SqlClient;

public class A
{
    public static void Main()
    {
        string connectionString = "<Your-connection-string-here>";
        // 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);
            }
        }
    }
}
// </Snippet1>

Berlaku untuk