SqlCommand.CommandTimeout is reached



可能重复:
如何捕获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执行一些操作。

只有在抛出错误时才能知道超时

因此,我建议您尝试处理异常,如果超时异常被捕获,那么您可以根据您的要求进行

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

来源:本SO线程。

相关内容

  • 没有找到相关文章

最新更新