<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.NET_Tutorial%2FADO.net_Database%2FSqlConnection</id>
		<title>ASP.NET Tutorial/ADO.net Database/SqlConnection - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.NET_Tutorial%2FADO.net_Database%2FSqlConnection"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/ADO.net_Database/SqlConnection&amp;action=history"/>
		<updated>2026-04-29T15:13:26Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/ADO.net_Database/SqlConnection&amp;diff=2705&amp;oldid=prev</id>
		<title> в 15:30, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/ADO.net_Database/SqlConnection&amp;diff=2705&amp;oldid=prev"/>
				<updated>2010-05-26T15:30:57Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:30, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/ADO.net_Database/SqlConnection&amp;diff=2706&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/ADO.net_Database/SqlConnection&amp;diff=2706&amp;oldid=prev"/>
				<updated>2010-05-26T11:56:51Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Define data layer in a separate class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; CodeFile=&amp;quot;Default.aspx.cs&amp;quot; Inherits=&amp;quot;ComponentTest&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;Employees&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;asp:Literal runat=&amp;quot;server&amp;quot; ID=&amp;quot;HtmlContent&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Default.aspx.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Configuration;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Web;&lt;br /&gt;
using System.Web.Security;&lt;br /&gt;
using System.Web.UI;&lt;br /&gt;
using System.Web.UI.WebControls;&lt;br /&gt;
using System.Web.UI.WebControls.WebParts;&lt;br /&gt;
using System.Web.UI.HtmlControls;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Data.SqlClient;&lt;br /&gt;
using System.Web.Configuration;&lt;br /&gt;
public partial class ComponentTest : System.Web.UI.Page&lt;br /&gt;
{&lt;br /&gt;
  private EmployeeDB db = new EmployeeDB();&lt;br /&gt;
  protected void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;
  {&lt;br /&gt;
    WriteEmployeesList();&lt;br /&gt;
    int empID = db.InsertEmployee(&lt;br /&gt;
      new EmployeeDetails(0, &amp;quot;Mr.&amp;quot;, &amp;quot;Bellinaso&amp;quot;, &amp;quot;Marco&amp;quot;));&lt;br /&gt;
    HtmlContent.Text += &amp;quot;&amp;lt;br&amp;gt;Inserted 1 employee.&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
    WriteEmployeesList();&lt;br /&gt;
    db.DeleteEmployee(empID);&lt;br /&gt;
    HtmlContent.Text += &amp;quot;&amp;lt;br&amp;gt;Deleted 1 employee.&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
    WriteEmployeesList();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  private void WriteEmployeesList()&lt;br /&gt;
  {&lt;br /&gt;
    StringBuilder htmlStr = new StringBuilder(&amp;quot;&amp;quot;);&lt;br /&gt;
    int numEmployees = db.CountEmployees();&lt;br /&gt;
    htmlStr.Append(&amp;quot;&amp;lt;br&amp;gt;Total employees: &amp;lt;b&amp;gt;&amp;quot;);&lt;br /&gt;
    htmlStr.Append(numEmployees.ToString());&lt;br /&gt;
    htmlStr.Append(&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    EmployeeDetails[] employees = db.GetEmployees();&lt;br /&gt;
    foreach (EmployeeDetails emp in employees)&lt;br /&gt;
    {&lt;br /&gt;
      htmlStr.Append(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;);&lt;br /&gt;
      htmlStr.Append(emp.EmployeeID);&lt;br /&gt;
      htmlStr.Append(&amp;quot; &amp;quot;);&lt;br /&gt;
      htmlStr.Append(emp.TitleOfCourtesy);&lt;br /&gt;
      htmlStr.Append(&amp;quot; &amp;lt;b&amp;gt;&amp;quot;);&lt;br /&gt;
      htmlStr.Append(emp.FirstName);&lt;br /&gt;
      htmlStr.Append(&amp;quot;&amp;lt;/b&amp;gt;, &amp;quot;);&lt;br /&gt;
      htmlStr.Append(emp.LastName);&lt;br /&gt;
      htmlStr.Append(&amp;quot;&amp;lt;/li&amp;gt;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    htmlStr.Append(&amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    HtmlContent.Text += htmlStr.ToString();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class EmployeeDetails&lt;br /&gt;
{&lt;br /&gt;
  private int employeeID;&lt;br /&gt;
  private string firstName;&lt;br /&gt;
  private string lastName;&lt;br /&gt;
  private string titleOfCourtesy;&lt;br /&gt;
  public int EmployeeID&lt;br /&gt;
  {&lt;br /&gt;
    get {return employeeID;}&lt;br /&gt;
    set {employeeID = value;}&lt;br /&gt;
  }&lt;br /&gt;
  public string FirstName&lt;br /&gt;
  {&lt;br /&gt;
    get {return firstName;}&lt;br /&gt;
    set {firstName = value;}&lt;br /&gt;
  }&lt;br /&gt;
  public string LastName&lt;br /&gt;
  {&lt;br /&gt;
    get {return lastName;}&lt;br /&gt;
    set {lastName = value;}&lt;br /&gt;
  }&lt;br /&gt;
  public string TitleOfCourtesy&lt;br /&gt;
  {&lt;br /&gt;
    get {return titleOfCourtesy;}&lt;br /&gt;
    set {titleOfCourtesy = value;}&lt;br /&gt;
  }&lt;br /&gt;
  public EmployeeDetails(int employeeID, string firstName, string lastName,&lt;br /&gt;
    string titleOfCourtesy)&lt;br /&gt;
  {&lt;br /&gt;
    this.employeeID = employeeID;&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
    this.titleOfCourtesy = titleOfCourtesy;&lt;br /&gt;
  }&lt;br /&gt;
  public EmployeeDetails(){}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class EmployeeDB&lt;br /&gt;
{&lt;br /&gt;
  private string connectionString;&lt;br /&gt;
  public EmployeeDB()&lt;br /&gt;
  {&lt;br /&gt;
    connectionString = WebConfigurationManager.ConnectionStrings[&amp;quot;Northwind&amp;quot;].ConnectionString;&lt;br /&gt;
  }&lt;br /&gt;
  public EmployeeDB(string connectionString)&lt;br /&gt;
  {&lt;br /&gt;
    this.connectionString = connectionString;&lt;br /&gt;
  }&lt;br /&gt;
  public int InsertEmployee(EmployeeDetails emp)&lt;br /&gt;
  {&lt;br /&gt;
    SqlConnection con = new SqlConnection(connectionString);&lt;br /&gt;
    SqlCommand cmd = new SqlCommand(&amp;quot;InsertEmployee&amp;quot;, con);&lt;br /&gt;
    cmd.rumandType = CommandType.StoredProcedure;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@FirstName&amp;quot;, SqlDbType.NVarChar, 10));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@FirstName&amp;quot;].Value = emp.FirstName;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@LastName&amp;quot;, SqlDbType.NVarChar, 20));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@LastName&amp;quot;].Value = emp.LastName;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@TitleOfCourtesy&amp;quot;, SqlDbType.NVarChar, 25));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@TitleOfCourtesy&amp;quot;].Value = emp.TitleOfCourtesy;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@EmployeeID&amp;quot;, SqlDbType.Int, 4));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@EmployeeID&amp;quot;].Direction = ParameterDirection.Output;&lt;br /&gt;
  &lt;br /&gt;
    try &lt;br /&gt;
    {&lt;br /&gt;
      con.Open();&lt;br /&gt;
      cmd.ExecuteNonQuery();&lt;br /&gt;
      return (int)cmd.Parameters[&amp;quot;@EmployeeID&amp;quot;].Value;&lt;br /&gt;
    }&lt;br /&gt;
    catch (SqlException err) &lt;br /&gt;
    {&lt;br /&gt;
      throw new ApplicationException(&amp;quot;Data error.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    finally &lt;br /&gt;
    {&lt;br /&gt;
      con.Close();      &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void UpdateEmployee(EmployeeDetails emp)&lt;br /&gt;
  {&lt;br /&gt;
    SqlConnection con = new SqlConnection(connectionString);&lt;br /&gt;
    SqlCommand cmd = new SqlCommand(&amp;quot;UpdateEmployee&amp;quot;, con);&lt;br /&gt;
    cmd.rumandType = CommandType.StoredProcedure;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@FirstName&amp;quot;, SqlDbType.NVarChar, 10));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@FirstName&amp;quot;].Value = emp.FirstName;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@LastName&amp;quot;, SqlDbType.NVarChar, 20));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@LastName&amp;quot;].Value = emp.LastName;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@TitleOfCourtesy&amp;quot;, SqlDbType.NVarChar, 25));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@TitleOfCourtesy&amp;quot;].Value = emp.TitleOfCourtesy;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@EmployeeID&amp;quot;, SqlDbType.Int, 4));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@EmployeeID&amp;quot;].Value = emp.EmployeeID;&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
      con.Open();&lt;br /&gt;
      cmd.ExecuteNonQuery();&lt;br /&gt;
    }&lt;br /&gt;
    catch (SqlException err)&lt;br /&gt;
    {&lt;br /&gt;
      throw new ApplicationException(&amp;quot;Data error.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    finally&lt;br /&gt;
    {&lt;br /&gt;
      con.Close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void UpdateEmployee(int EmployeeID, string firstName, string lastName, string titleOfCourtesy)&lt;br /&gt;
  {&lt;br /&gt;
    SqlConnection con = new SqlConnection(connectionString);&lt;br /&gt;
    SqlCommand cmd = new SqlCommand(&amp;quot;UpdateEmployee&amp;quot;, con);&lt;br /&gt;
    cmd.rumandType = CommandType.StoredProcedure;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@FirstName&amp;quot;, SqlDbType.NVarChar, 10));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@FirstName&amp;quot;].Value = firstName;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@LastName&amp;quot;, SqlDbType.NVarChar, 20));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@LastName&amp;quot;].Value = lastName;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@TitleOfCourtesy&amp;quot;, SqlDbType.NVarChar, 25));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@TitleOfCourtesy&amp;quot;].Value = titleOfCourtesy;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@EmployeeID&amp;quot;, SqlDbType.Int, 4));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@EmployeeID&amp;quot;].Value = EmployeeID;&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
      con.Open();&lt;br /&gt;
      cmd.ExecuteNonQuery();&lt;br /&gt;
    }&lt;br /&gt;
    catch (SqlException err)&lt;br /&gt;
    {&lt;br /&gt;
      throw new ApplicationException(&amp;quot;Data error.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    finally&lt;br /&gt;
    {&lt;br /&gt;
      con.Close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void DeleteEmployee(int employeeID)&lt;br /&gt;
  {&lt;br /&gt;
    SqlConnection con = new SqlConnection(connectionString);&lt;br /&gt;
    SqlCommand cmd = new SqlCommand(&amp;quot;DeleteEmployee&amp;quot;, con);&lt;br /&gt;
    cmd.rumandType = CommandType.StoredProcedure;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@EmployeeID&amp;quot;, SqlDbType.Int, 4));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@EmployeeID&amp;quot;].Value = employeeID;&lt;br /&gt;
      &lt;br /&gt;
    try &lt;br /&gt;
    {&lt;br /&gt;
      con.Open();&lt;br /&gt;
      cmd.ExecuteNonQuery();&lt;br /&gt;
    }&lt;br /&gt;
    catch (SqlException err) &lt;br /&gt;
    {&lt;br /&gt;
      throw new ApplicationException(&amp;quot;Data error.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    finally &lt;br /&gt;
    {&lt;br /&gt;
      con.Close();      &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public EmployeeDetails GetEmployee(int employeeID)&lt;br /&gt;
  {&lt;br /&gt;
    SqlConnection con = new SqlConnection(connectionString);&lt;br /&gt;
    SqlCommand cmd = new SqlCommand(&amp;quot;GetEmployee&amp;quot;, con);&lt;br /&gt;
    cmd.rumandType = CommandType.StoredProcedure;&lt;br /&gt;
    cmd.Parameters.Add(new SqlParameter(&amp;quot;@EmployeeID&amp;quot;, SqlDbType.Int, 4));&lt;br /&gt;
    cmd.Parameters[&amp;quot;@EmployeeID&amp;quot;].Value = employeeID;&lt;br /&gt;
        &lt;br /&gt;
    try &lt;br /&gt;
    {&lt;br /&gt;
      con.Open();&lt;br /&gt;
      SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow);&lt;br /&gt;
      &lt;br /&gt;
      reader.Read();&lt;br /&gt;
      EmployeeDetails emp = new EmployeeDetails(&lt;br /&gt;
        (int)reader[&amp;quot;EmployeeID&amp;quot;], (string)reader[&amp;quot;FirstName&amp;quot;],&lt;br /&gt;
        (string)reader[&amp;quot;LastName&amp;quot;], (string)reader[&amp;quot;TitleOfCourtesy&amp;quot;]);&lt;br /&gt;
      reader.Close();&lt;br /&gt;
      return emp;&lt;br /&gt;
    }&lt;br /&gt;
    catch (SqlException err) &lt;br /&gt;
    {&lt;br /&gt;
      throw new ApplicationException(&amp;quot;Data error.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    finally &lt;br /&gt;
    {&lt;br /&gt;
      con.Close();      &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public EmployeeDetails[] GetEmployees()&lt;br /&gt;
  {&lt;br /&gt;
    SqlConnection con = new SqlConnection(connectionString);&lt;br /&gt;
    SqlCommand cmd = new SqlCommand(&amp;quot;GetAllEmployees&amp;quot;, con);&lt;br /&gt;
    cmd.rumandType = CommandType.StoredProcedure;&lt;br /&gt;
        &lt;br /&gt;
    ArrayList employees = new ArrayList();&lt;br /&gt;
    try &lt;br /&gt;
    {&lt;br /&gt;
      con.Open();&lt;br /&gt;
      SqlDataReader reader = cmd.ExecuteReader();&lt;br /&gt;
      while (reader.Read())&lt;br /&gt;
      {&lt;br /&gt;
        EmployeeDetails emp = new EmployeeDetails(&lt;br /&gt;
          (int)reader[&amp;quot;EmployeeID&amp;quot;], (string)reader[&amp;quot;FirstName&amp;quot;],&lt;br /&gt;
          (string)reader[&amp;quot;LastName&amp;quot;], (string)reader[&amp;quot;TitleOfCourtesy&amp;quot;]);&lt;br /&gt;
        employees.Add(emp);&lt;br /&gt;
      }&lt;br /&gt;
      reader.Close();&lt;br /&gt;
      &lt;br /&gt;
      return (EmployeeDetails[])employees.ToArray(typeof(EmployeeDetails));&lt;br /&gt;
    }&lt;br /&gt;
    catch (SqlException err) &lt;br /&gt;
    {&lt;br /&gt;
      throw new ApplicationException(&amp;quot;Data error.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    finally &lt;br /&gt;
    {&lt;br /&gt;
      con.Close();      &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
      &lt;br /&gt;
  public int CountEmployees()&lt;br /&gt;
  {&lt;br /&gt;
    SqlConnection con = new SqlConnection(connectionString);&lt;br /&gt;
    SqlCommand cmd = new SqlCommand(&amp;quot;CountEmployees&amp;quot;, con);&lt;br /&gt;
    cmd.rumandType = CommandType.StoredProcedure;&lt;br /&gt;
        &lt;br /&gt;
    try &lt;br /&gt;
    {&lt;br /&gt;
      con.Open();&lt;br /&gt;
      return (int)cmd.ExecuteScalar();&lt;br /&gt;
    }&lt;br /&gt;
    catch (SqlException err) &lt;br /&gt;
    {&lt;br /&gt;
      throw new ApplicationException(&amp;quot;Data error.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    finally &lt;br /&gt;
    {&lt;br /&gt;
      con.Close();      &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
File: Web.config&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;configuration xmlns=&amp;quot;http://schemas.microsoft.ru/.NetConfiguration/v2.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
    &amp;lt;add name=&amp;quot;Northwind&amp;quot; connectionString= &amp;quot;Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
  &amp;lt;system.web&amp;gt;&lt;br /&gt;
    &amp;lt;compilation debug=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;authentication mode=&amp;quot;Windows&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Displaying all provider statistics.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Data.SqlClient&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Web.Configuration&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    void Page_Load()&lt;br /&gt;
    {&lt;br /&gt;
        string connectionString = WebConfigurationManager.ConnectionStrings[&amp;quot;Products&amp;quot;].ConnectionString;&lt;br /&gt;
        SqlConnection con = new SqlConnection(connectionString);&lt;br /&gt;
        SqlCommand cmd = new SqlCommand(&amp;quot;WAITFOR DELAY &amp;quot;0:0:03&amp;quot;;SELECT Title,Director FROM Products&amp;quot;, con);&lt;br /&gt;
        con.StatisticsEnabled = true;&lt;br /&gt;
        using (con)&lt;br /&gt;
        {&lt;br /&gt;
            con.Open();&lt;br /&gt;
            SqlDataReader reader = cmd.ExecuteReader();&lt;br /&gt;
        }&lt;br /&gt;
        grdStats.DataSource = con.RetrieveStatistics();&lt;br /&gt;
        grdStats.DataBind();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Show All Statistics&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Connection Statistics&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;asp:GridView&lt;br /&gt;
        id=&amp;quot;grdStats&amp;quot;&lt;br /&gt;
        AutoGenerateColumns=&amp;quot;false&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Columns&amp;gt;&lt;br /&gt;
        &amp;lt;asp:BoundField DataField=&amp;quot;Key&amp;quot; HeaderText=&amp;quot;Key&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;asp:BoundField DataField=&amp;quot;Value&amp;quot; HeaderText=&amp;quot;Value&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Columns&amp;gt;&lt;br /&gt;
    &amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Web.config&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
    &amp;lt;add name=&amp;quot;Products&amp;quot; &lt;br /&gt;
         connectionString=&amp;quot;Data Source=.\SQLEXPRESS;&lt;br /&gt;
         AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Hard code connection string in DropDownList==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ import Namespace=&amp;quot;System.Data.SqlClient&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
void cmdConnect_OnClick(Object sender, EventArgs e) &lt;br /&gt;
{&lt;br /&gt;
    String connectString = ConnectionsList.SelectedItem.Text;&lt;br /&gt;
      &lt;br /&gt;
    SqlConnection sqlConn = null;&lt;br /&gt;
    try&lt;br /&gt;
    {      &lt;br /&gt;
      sqlConn = new SqlConnection(connectString);&lt;br /&gt;
      sqlConn.Open();&lt;br /&gt;
        &lt;br /&gt;
      lblConnectInfo.Text = &amp;quot;Connection successful!&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    catch&lt;br /&gt;
    {&lt;br /&gt;
      lblConnectInfo.Text = &amp;quot;Connection failed!&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    finally&lt;br /&gt;
    {&lt;br /&gt;
      if (sqlConn != null)&lt;br /&gt;
        sqlConn.Close();&lt;br /&gt;
    }        &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Default&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; method=&amp;quot;post&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;Note: None of these actually work for this demo.&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:DropDownList id=&amp;quot;ConnectionsList&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;asp:listitem value=&amp;quot;logonpassword&amp;quot;&amp;gt;User ID=user;Password=pass;Initial Catalog=Northwind;Data Source=(local)&amp;lt;/asp:listitem&amp;gt;&lt;br /&gt;
        &amp;lt;asp:listitem value=&amp;quot;IntegratedSecurity&amp;quot;&amp;gt;Integrated Security=yes;Initial Catalog=Northwind;Data Source=(local)&amp;lt;/asp:listitem&amp;gt;&lt;br /&gt;
      &amp;lt;/asp:DropDownList&amp;gt;&lt;br /&gt;
      &amp;lt;asp:Button id=&amp;quot;cmdConnect&amp;quot; onclick=&amp;quot;cmdConnect_OnClick&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;Connect&amp;quot;&amp;gt;&amp;lt;/asp:Button&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
      &amp;lt;asp:Label id=&amp;quot;lblConnectInfo&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Improving Performance with Connection Pooling==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
File: ShowUserConnections.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Data.SqlClient&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Web.Configuration&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;    void Page_Load()&lt;br /&gt;
    {&lt;br /&gt;
        string connectionString = @&amp;quot;Min Pool Size=10;Data Source=.\SQLExpress;Integrated Security=True;AttachDbFileName=|DataDirectory|MyDatabase.mdf;User Instance=True&amp;quot;;&lt;br /&gt;
        SqlConnection con = new SqlConnection(connectionString);&lt;br /&gt;
        SqlCommand cmd = new SqlCommand(&amp;quot;SELECT * FROM master..sysprocesses WHERE hostname&amp;lt;&amp;gt;&amp;quot;&amp;quot;&amp;quot;, con);&lt;br /&gt;
        using (con)&lt;br /&gt;
        {&lt;br /&gt;
            con.Open();&lt;br /&gt;
            grdStats.DataSource = cmd.ExecuteReader();&lt;br /&gt;
            grdStats.DataBind();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Show User Connections&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;User Connections&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;asp:GridView&lt;br /&gt;
        id=&amp;quot;grdStats&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Retrieving Provider Statistics about the database commands executed with the connection==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
File: App_Code\Product.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Data.SqlClient;&lt;br /&gt;
using System.Web.Configuration;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
public class Product&lt;br /&gt;
{&lt;br /&gt;
    private static readonly string _connectionString;&lt;br /&gt;
    private string _title;&lt;br /&gt;
    private string _director;&lt;br /&gt;
    public string Title&lt;br /&gt;
    {&lt;br /&gt;
        get { return _title; }&lt;br /&gt;
        set { _title = value; }&lt;br /&gt;
    }&lt;br /&gt;
    public string Director&lt;br /&gt;
    {&lt;br /&gt;
        get { return _director; }&lt;br /&gt;
        set { _director = value; }&lt;br /&gt;
    }&lt;br /&gt;
    public List&amp;lt;Product&amp;gt; GetAll(out long executionTime)&lt;br /&gt;
    {&lt;br /&gt;
        List&amp;lt;Product&amp;gt; results = new List&amp;lt;Product&amp;gt;();&lt;br /&gt;
        SqlConnection con = new SqlConnection(_connectionString);&lt;br /&gt;
        SqlCommand cmd = new SqlCommand(&amp;quot;WAITFOR DELAY &amp;quot;0:0:03&amp;quot;;SELECT Title, Director FROM Products&amp;quot;, con);&lt;br /&gt;
        con.StatisticsEnabled = true;&lt;br /&gt;
        using (con)&lt;br /&gt;
        {&lt;br /&gt;
            con.Open();&lt;br /&gt;
            SqlDataReader reader = cmd.ExecuteReader();&lt;br /&gt;
            while (reader.Read())&lt;br /&gt;
            {                &lt;br /&gt;
                Product newProduct = new Product();&lt;br /&gt;
                newProduct.Title = (string)reader[&amp;quot;Title&amp;quot;];&lt;br /&gt;
                newProduct.Director = (string)reader[&amp;quot;Director&amp;quot;];&lt;br /&gt;
                results.Add(newProduct);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        IDictionary stats = con.RetrieveStatistics();&lt;br /&gt;
        executionTime = (long)stats[&amp;quot;ExecutionTime&amp;quot;];&lt;br /&gt;
        return results;&lt;br /&gt;
    }&lt;br /&gt;
    static Product()&lt;br /&gt;
    {&lt;br /&gt;
        _connectionString = WebConfigurationManager.ConnectionStrings[&amp;quot;Products&amp;quot;].ConnectionString;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
File: Web.config&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
    &amp;lt;add name=&amp;quot;Products&amp;quot; &lt;br /&gt;
         connectionString=&amp;quot;Data Source=.\SQLEXPRESS;&lt;br /&gt;
         AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
File: Default.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    protected void srcProducts_Selected(object sender, ObjectDataSourceStatusEventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        lblExecutionTime.Text = e.OutputParameters[&amp;quot;executionTime&amp;quot;].ToString();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Show Product&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;asp:GridView&lt;br /&gt;
        id=&amp;quot;grdProducts&amp;quot;&lt;br /&gt;
        DataSourceID=&amp;quot;srcProducts&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:ObjectDataSource&lt;br /&gt;
        id=&amp;quot;srcProducts&amp;quot;&lt;br /&gt;
        TypeName=&amp;quot;Product&amp;quot;&lt;br /&gt;
        SelectMethod=&amp;quot;GetAll&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; OnSelected=&amp;quot;srcProducts_Selected&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;SelectParameters&amp;gt;&lt;br /&gt;
        &amp;lt;asp:Parameter Name=&amp;quot;executionTime&amp;quot; Type=&amp;quot;Int64&amp;quot; Direction=&amp;quot;Output&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/SelectParameters&amp;gt;&lt;br /&gt;
    &amp;lt;/asp:ObjectDataSource&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&lt;br /&gt;
    Execution time was&lt;br /&gt;
    &amp;lt;asp:Label&lt;br /&gt;
        id=&amp;quot;lblExecutionTime&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    milliseconds&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>