public PerformanceResult CheckPerformance(int timeout) { bool isTimeout = false; DateTime tsStart, tsStop = DateTime.Now; if (command.Connection.State == ConnectionState.Closed) { try { command.Connection.Open(); } catch (SqlException ex) { throw new ConnectionException(ex, command.Connection.ConnectionString); } } Trace.WriteLineIf(NBiTraceSwitch.TraceVerbose, command.CommandText); foreach (SqlParameter param in command.Parameters) { Trace.WriteLineIf(NBiTraceSwitch.TraceVerbose, string.Format("{0} => {1}", param.ParameterName, param.Value)); } command.CommandTimeout = timeout / 1000; tsStart = DateTime.Now; try { command.ExecuteNonQuery(); tsStop = DateTime.Now; } catch (SqlException e) { if (!e.Message.StartsWith("Timeout expired.")) { throw; } isTimeout = true; } if (command.Connection.State == ConnectionState.Open) { command.Connection.Close(); } if (isTimeout) { return(PerformanceResult.Timeout(timeout)); } else { return(new PerformanceResult(tsStop.Subtract(tsStart))); } }
public PerformanceResult CheckPerformance(int timeout) { bool isTimeout = false; DateTime tsStart, tsStop = DateTime.Now; if (command.Connection.State == ConnectionState.Closed) { command.Connection.Open(); } tsStart = DateTime.Now; try { command.ExecuteNonQuery(); tsStop = DateTime.Now; } catch (OleDbException e) { if (!e.Message.StartsWith("Timeout expired.")) { throw; } isTimeout = true; } if (command.Connection.State == ConnectionState.Open) { command.Connection.Close(); } if (isTimeout) { return(PerformanceResult.Timeout(timeout)); } else { return(new PerformanceResult(tsStop.Subtract(tsStart))); } }