Result:


Code:

        [System.Runtime.InteropServices.DllImport("KERNEL32")] 
        
private extern static bool QueryPerformanceCounter(out long counter); 

        [System.Runtime.InteropServices.DllImport(
"KERNEL32")] 
        
private extern static bool QueryPerformanceFrequency(out long frequency); 

        
private static long _frequency; 

private void Page_Load(object sender, System.EventArgs e)
        
{
            QueryPerformanceFrequency(
out _frequency); 
    
            
// Put user code to initialize the page here
        }




/// <summary>
        
/// OLEDB.NET
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void Button1_Click(object sender, System.EventArgs e)
        
{
            
long start = 0, stop = 0;

            
for (int i=0 ; i< Convert.ToInt16(this.TextBox1.Text);i++)
            
{
                System.Data.OleDb.OleDbConnection conn 
= new System.Data.OleDb.OleDbConnection();
                conn.ConnectionString 
=     

    
"Provider=OraOLEDB.Oracle;User Id=UID;Password=PWD;Data Source=DS;OLEDB.NET=true;";

                System.Data.OleDb.OleDbCommand cmd 
= new System.Data.OleDb.OleDbCommand();
                cmd.Connection 
= conn;
                cmd.CommandText 
= "select * from company where rownum<30000";
                cmd.CommandType 
= System.Data.CommandType.Text;
                conn.Open();

                QueryPerformanceCounter(
out start); 
                cmd.ExecuteNonQuery();
                QueryPerformanceCounter(
out stop); 

                cmd.Dispose();
                conn.Close();
                conn.Dispose();
                Response.Write(
"throw/catch costs about {0:0.000} ms:"+ (stop-start)*1000F/_frequency); 
                Response.Write(
"<br>");
            }

        }




        
/// <summary>
        
/// ODBC Testing
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void Button2_Click(object sender, System.EventArgs e)
        
{
            
long start = 0, stop = 0;

            
for (int i=0 ; i< Convert.ToInt16(this.TextBox1.Text);i++)
            
{
                System.Data.Odbc.OdbcConnection conn 
= new System.Data.Odbc.OdbcConnection();
                conn.ConnectionString 
= 
                    
"DSN=dsn;UID=UID;PWD=PWD";
                System.Data.Odbc.OdbcCommand cmd 
= new System.Data.Odbc.OdbcCommand();
                cmd.Connection 
= conn;
                cmd.CommandText 
= "select * from company where rownum<30000";
                cmd.CommandType 
= System.Data.CommandType.Text;
                conn.Open();


                QueryPerformanceCounter(
out start); 
                cmd.ExecuteNonQuery();
                QueryPerformanceCounter(
out stop); 

                cmd.Dispose();
                conn.Close();
                conn.Dispose();
                Response.Write(
"throw/catch costs about {0:0.000} ms:"+ (stop-start)*1000F/_frequency); 
                Response.Write(
"<br>");
            }
        
        }




        
/// <summary>
        
/// ODPN
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void Button3_Click(object sender, System.EventArgs e)
        
{
            
long start = 0, stop = 0;

            
for (int i=0 ; i< Convert.ToInt16(this.TextBox1.Text);i++)
            
{
                Oracle.DataAccess.Client.OracleConnection conn 
= new Oracle.DataAccess.Client.OracleConnection();
                conn.ConnectionString 
= 
        
"Data Source=DS;User Id=UID;Password=PWD;Incr Pool Size=1";
                Oracle.DataAccess.Client.OracleCommand cmd 
= new Oracle.DataAccess.Client.OracleCommand();
                cmd.Connection 
= conn;
                cmd.CommandText 
= "select * from company where rownum<30000";
                cmd.CommandType 
= System.Data.CommandType.Text;
                conn.Open();


                QueryPerformanceCounter(
out start); 
                cmd.ExecuteNonQuery();
                QueryPerformanceCounter(
out stop); 

                cmd.Dispose();
                conn.Close();
                conn.Dispose();
                Response.Write(
"throw/catch costs about {0:0.000} ms:"+ (stop-start)*1000F/_frequency); 
                Response.Write(
"<br>");
            }
            
        }


        
/// <summary>
        
/// MicroOra: System.Data.OracleClient
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void Button4_Click(object sender, System.EventArgs e)
        
{
            
long start = 0, stop = 0;

            
for (int i=0 ; i< Convert.ToInt16(this.TextBox1.Text);i++)
            
{
                System.Data.OracleClient.OracleConnection conn 
= new System.Data.OracleClient.OracleConnection();
                conn.ConnectionString 
=                                     "Data Source=DS;User Id=UID;Password=PWD;";
                System.Data.OracleClient.OracleCommand cmd 
= new System.Data.OracleClient.OracleCommand();
                cmd.Connection 
= conn;
                cmd.CommandText 
= "select * from company where rownum<30000";
                cmd.CommandType 
= System.Data.CommandType.Text;
                conn.Open();

                QueryPerformanceCounter(
out start); 
                cmd.ExecuteNonQuery();
                QueryPerformanceCounter(
out stop); 

                cmd.Dispose();
                conn.Close();
                conn.Dispose();
                Response.Write(
"throw/catch costs about {0:0.000} ms:"+ (stop-start)*1000F/_frequency); 
                Response.Write(
"<br>");
            }
            
        }


        
/// <summary>
        
/// System.Data.OleDb
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void Button5_Click(object sender, System.EventArgs e)
        
{            
            
long start = 0, stop = 0;

            
for (int i=0 ; i< Convert.ToInt16(this.TextBox1.Text);i++)
            
{
                System.Data.OleDb.OleDbConnection conn 
= new System.Data.OleDb.OleDbConnection();
                conn.ConnectionString 
= 
                    
"Provider=MSDAORA.1; User ID=UID; Password=PWD; Data Source=DS";
                System.Data.OleDb.OleDbCommand cmd 
= new System.Data.OleDb.OleDbCommand();
                cmd.Connection 
= conn;
                cmd.CommandText 
= "select * from company where rownum<30000";
                cmd.CommandType 
= System.Data.CommandType.Text;
                conn.Open();

                QueryPerformanceCounter(
out start); 
                cmd.ExecuteNonQuery();
                QueryPerformanceCounter(
out stop); 

                cmd.Dispose();
                conn.Close();
                conn.Dispose();
                Response.Write(
"throw/catch costs about {0:0.000} ms:"+ (stop-start)*1000F/_frequency); 
                Response.Write(
"<br>");
            }


        }