rendered paste bodyusing System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Web;
namespace DarkBulletin.Data
{
public sealed class QueryInfo : IDisposable
{
private Stopwatch stopwatch = new Stopwatch( );
private String qc_cmd;
public QueryInfo(string sql)
{
qc_cmd = sql;
if( HttpContext.Current.Items[ "NumQueries" ] == null )
{
HttpContext.Current.Items[ "NumQueries" ] = 1;
}
else
{
HttpContext.Current.Items[ "NumQueries" ] = 1 + ( Int32 ) HttpContext.Current.Items[ "NumQueries" ];
}
stopwatch.Start( );
}
#region IDisposable Members
public void Dispose( )
{
stopwatch.Stop( );
double duration = stopwatch.ElapsedMilliseconds / 1000.0;
qc_cmd = string.Format ( "{0}: {1:N3}" , qc_cmd , duration );
if( HttpContext.Current.Items[ "TimeQueries" ] == null )
{
HttpContext.Current.Items[ "TimeQueries" ] = duration;
}
else
{
HttpContext.Current.Items[ "TimeQueries" ] = duration
+ ( double ) HttpContext.Current.Items[ "TimeQueries" ];
if(HttpContext.Current.Items["CmdQueries"] == null)
{
HttpContext.Current.Items[ "CmdQueries" ] = qc_cmd;
}
else
{
HttpContext.Current.Items[ "CmdQueries" ] += "<br />" + qc_cmd;
}
}
}
#endregion
public static void Reset( )
{
HttpContext.Current.Items[ "NumQueries" ] = 0;
HttpContext.Current.Items[ "TimeQueries" ] = ( double ) 0;
HttpContext.Current.Items[ "CmdQueries" ] = "";
}
public static int Count
{
get { return ( Int32 ) HttpContext.Current.Items[ "NumQueries" ]; }
}
public static double Duration
{
get { return ( double ) HttpContext.Current.Items[ "TimeQueries" ]; }
}
public static string Commands
{
get { return ( string ) HttpContext.Current.Items[ "CmdQueries" ]; }
}
}
}