SqlCommand.CommandTimeout Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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);
}
}
}
}