この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

SqlCommand.CommandTimeout プロパティ

 

公開日: 2016年11月

コマンドを実行する試みを終了してエラーが生成されるまでの待機時間を取得または設定します。

名前空間:   System.Data.SqlClient
アセンブリ:  System.Data (System.Data.dll 内)

public override int CommandTimeout { get; set; }

プロパティ値

Type: System.Int32

コマンドの実行を待機する時間 (秒単位)。 既定値は 30 秒です。

A value of 0 indicates no limit (an attempt to execute a command will wait indefinitely).

System_CAPS_noteメモ

The P:System.Data.SqlClient.SqlCommand.CommandTimeout property will be ignored during asynchronous method calls such as M:System.Data.SqlClient.SqlCommand.BeginExecuteReader.

CommandTimeout has no effect when the command is executed against a context connection (a SqlConnection opened with "context connection=true" in the connection string).

System_CAPS_noteメモ

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.

For example, with a 30 second time out, if M:System.Data.SqlClient.SqlDataReader.Read requires two network packets, then it has 30 seconds to read both network packets. If you call M:System.Data.SqlClient.SqlDataReader.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)) {
         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);
         }
      }
   }
}

.NET Framework
1.1 以降で使用可能
トップに戻る
表示: