SqlCommand.CommandTimeout is reached
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How to catch SQLServer timeout exceptions
我有以下代码:
1 2 3 4 5 6 7 8 9 10 11 | 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做一些事情。
只有在引发错误时才能知道超时。
因此,我建议您尝试处理异常,如果捕捉到超时异常,那么您就可以根据自己的要求进行处理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | try { //your code } catch (SqlException ex) { if (ex.Number == -2) { //System.Data.SqlClient.TdsEnums.TIMEOUT_EXPIRED //handle timeout } else { throw; } } finally { //cleanup } |
资料来源:这个SO线程。