Mega Code Archive

 
Categories / ASP.Net Tutorial / ADO Net Database
 

Retrieving Provider Statistics about the database commands executed with the connection

File: App_Code\Product.cs using System; using System.Data; using System.Data.SqlClient; using System.Web.Configuration; using System.Collections; using System.Collections.Generic; public class Product {     private static readonly string _connectionString;     private string _title;     private string _director;     public string Title     {         get { return _title; }         set { _title = value; }     }     public string Director     {         get { return _director; }         set { _director = value; }     }     public List<Product> GetAll(out long executionTime)     {         List<Product> results = new List<Product>();         SqlConnection con = new SqlConnection(_connectionString);         SqlCommand cmd = new SqlCommand("WAITFOR DELAY '0:0:03';SELECT Title, Director FROM Products", con);         con.StatisticsEnabled = true;         using (con)         {             con.Open();             SqlDataReader reader = cmd.ExecuteReader();             while (reader.Read())             {                                 Product newProduct = new Product();                 newProduct.Title = (string)reader["Title"];                 newProduct.Director = (string)reader["Director"];                 results.Add(newProduct);             }         }         IDictionary stats = con.RetrieveStatistics();         executionTime = (long)stats["ExecutionTime"];         return results;     }     static Product()     {         _connectionString = WebConfigurationManager.ConnectionStrings["Products"].ConnectionString;     } } File: Web.config <configuration>   <connectionStrings>     <add name="Products"           connectionString="Data Source=.\SQLEXPRESS;          AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" />   </connectionStrings> </configuration> File: Default.aspx <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">     protected void srcProducts_Selected(object sender, ObjectDataSourceStatusEventArgs e)     {         lblExecutionTime.Text = e.OutputParameters["executionTime"].ToString();     } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">     <title>Show Product</title> </head> <body>     <form id="form1" runat="server">     <div>     <asp:GridView         id="grdProducts"         DataSourceID="srcProducts"         Runat="server" />     <asp:ObjectDataSource         id="srcProducts"         TypeName="Product"         SelectMethod="GetAll"         Runat="server" OnSelected="srcProducts_Selected">         <SelectParameters>         <asp:Parameter Name="executionTime" Type="Int64" Direction="Output" />         </SelectParameters>     </asp:ObjectDataSource>     <br />     Execution time was     <asp:Label         id="lblExecutionTime"         Runat="server" />     milliseconds     </div>     </form> </body> </html>