SqlCommand.CommandTimeout 属性

定义

获取或设置在终止尝试执行命令并生成错误之前的等待时间(以秒为单位)。

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

属性值

Int32

等待命令执行所需的时间(以秒为单位)。 默认为 30 秒。

实现

属性

注解

值 0 表示尝试执行命令时不会无限期等待) (限制。

备注

旧 APM (异步编程模型) 异步方法调用(例如BeginExecuteReader)将忽略此属性CommandTimeout。 较新的 TAP (任务异步编程) 方法(例如 ExecuteReaderAsync)将遵循它。

CommandTimeout 当命令针对上下文连接执行时无效, (SqlConnection 连接字符串) 中使用“context connection=true”打开的上下文连接。

备注

此属性是调用方法) 在命令执行或处理结果期间读取的所有网络数据包的累积超时 (。 返回第一行后仍可能发生超时,并且不包括用户处理时间,仅网络读取时间。

例如,如果使用 30 秒超时,如果需要 Read 两个网络数据包,则读取这两个网络数据包需要 30 秒。 如果再次调用 Read ,它将再有 30 秒来读取它所需的任何数据。

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

适用于

另请参阅