SqlCommand.CommandTimeout SqlCommand.CommandTimeout SqlCommand.CommandTimeout SqlCommand.CommandTimeout Property


コマンドを実行する試みを終了してエラーが生成されるまでの待機時間を取得または設定します。Gets or sets the wait time before terminating the attempt to execute a command and generating an error.

 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


コマンドの実行を待機する時間 (秒単位)。The time in seconds to wait for the command to execute. 既定値は 30 秒です。The default is 30 seconds.



値 0 は、(コマンドを実行するとは無期限に待機) の制限がないことを示します。A value of 0 indicates no limit (an attempt to execute a command will wait indefinitely).


CommandTimeoutプロパティは無視されます非同期メソッドの呼び出し中になどBeginExecuteReaderします。The CommandTimeout property will be ignored during asynchronous method calls such as BeginExecuteReader.

CommandTimeout コンテキスト接続に対してコマンドが実行されたときに影響を与えません (、SqlConnectionで開かれた"コンテキスト接続 = true"で接続文字列)。has no effect when the command is executed against a context connection (a SqlConnection opened with "context connection=true" in the connection string).


このプロパティは、コマンドの実行や、結果の処理中にすべてのネットワークの読み取り (メソッドの呼び出し中に読み取られるすべてのネットワーク パケット) の累積的なタイムアウトです。This property is the cumulative time-out (for all network packets that are read during the invocation of a method) for all network reads during command execution or processing of the results. タイムアウトは、最初の行が返され、ユーザーの処理時間は含まれません後にも発生することができます、時刻の読み取りのみのネットワーク。A time-out can still occur after the first row is returned, and does not include user processing time, only network read time.

かどうかを 30 秒の時間をたとえば、 Read 2 つのネットワーク パケットの場合、両方のネットワーク パケットの読み取りに 30 秒がある必要があります。For example, with a 30 second time out, if Read requires two network packets, then it has 30 seconds to read both network packets. 呼び出す場合Readここでも、必要なすべてのデータを読み取る他の 30 秒が得られます。If you call Read again, it will have another 30 seconds to read any data that it requires.

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)) {  
         SqlCommand command = new SqlCommand(queryString, connection);  
         // Setting command timeout to 1 second  
         command.CommandTimeout = 1;  
         try {  
         catch (SqlException e) {  
            Console.WriteLine("Got expected SqlException due to command timeout ");