0

重複の可能性:
SQLServer タイムアウト例外をキャッチする方法

次のコードがあります。

using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MainDll"].ToString()))
{
    connection.Open();
    using (SqlCommand command = new SqlCommand(sql.ToString(), connection))
    {
        command.CommandType = CommandType.Text;
        command.CommandTimeout = 300;
        returnCode = (string)command.ExecuteScalar();
        //Dispose();
    }
}

タイムアウトに達したことを知るにはどうすればよいですか? 私はそれをつかんで、タイムアウト後にSQLで何かをしたい.

4

2 に答える 2

1

エラーがスローされたときにのみタイムアウトに達したことを知ることができます

したがって、例外を処理することをお勧めします.TimeOut例外がキャッチされた場合は、要件に従って実行できる時間です.

于 2012-07-30T18:39:33.967 に答える
0
try {
  //your code
}
catch (SqlException ex) {
  if (ex.Number == -2) { //System.Data.SqlClient.TdsEnums.TIMEOUT_EXPIRED
    //handle timeout
  }
  else {
    throw;
  }
}
finally {
  //cleanup
}

出典:このSO スレッド。

于 2012-07-30T18:51:03.267 に答える