可能重复:
如何捕获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线程。