到达SqlCommand.CommandTimeout

时间:2012-07-30 18:32:32

标签: c# asp.net .net sql timeout

  

可能重复:
  How to catch SQLServer timeout exceptions

我有以下代码:

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做一些事情。

2 个答案:

答案 0 :(得分:1)

您只能知道在抛出错误时达到超时

所以我建议尝试处理异常,如果捕获了TimeOut异常那么你可以按照你的要求做的时间

答案 1 :(得分:0)

try {
  //your code
}
catch (SqlException ex) {
  if (ex.Number == -2) { //System.Data.SqlClient.TdsEnums.TIMEOUT_EXPIRED
    //handle timeout
  }
  else {
    throw;
  }
}
finally {
  //cleanup
}

来源:This SO帖子。