<?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%2FDataReader</id>
		<title>ASP.NET Tutorial/ADO.net Database/DataReader - История изменений</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%2FDataReader"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/ADO.net_Database/DataReader&amp;action=history"/>
		<updated>2026-04-29T16:28:06Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/ADO.net_Database/DataReader&amp;diff=2739&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/DataReader&amp;diff=2739&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/DataReader&amp;diff=2740&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/DataReader&amp;diff=2740&amp;oldid=prev"/>
				<updated>2010-05-26T11:56:58Z</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;== Create DataReader object from SqlCommand==&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&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 Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        string ConnectionString = Convert.ToString(ConfigurationSettings.AppSettings[&amp;quot;MSDEConnectString&amp;quot;]);&lt;br /&gt;
    &lt;br /&gt;
        string CommandText = &amp;quot;SELECT AuthorName, AuthorCity, AuthorContact_Email, AuthorWebsite FROM Author&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
        SqlConnection myConnection = new SqlConnection(ConnectionString);&lt;br /&gt;
        SqlCommand myCommand = new SqlCommand(CommandText, myConnection);&lt;br /&gt;
    &lt;br /&gt;
        try&lt;br /&gt;
        {&lt;br /&gt;
            myConnection.Open();&lt;br /&gt;
    &lt;br /&gt;
            SqlDataReader myReader = myCommand.ExecuteReader();&lt;br /&gt;
            while (myReader.Read()){&lt;br /&gt;
               Author p = new Author();&lt;br /&gt;
               p.Name = myReader.GetString(0);&lt;br /&gt;
               p.City = myReader.GetString(1);&lt;br /&gt;
               p.Email = myReader.GetString(2);&lt;br /&gt;
               p.Website = myReader.GetString(3);&lt;br /&gt;
    &lt;br /&gt;
               Label1.Text += p.ToString();&lt;br /&gt;
            }&lt;br /&gt;
    &lt;br /&gt;
            myReader.Close();&lt;br /&gt;
        } catch (Exception ex)&lt;br /&gt;
        {&lt;br /&gt;
            throw (ex);&lt;br /&gt;
        }&lt;br /&gt;
        finally&lt;br /&gt;
        {&lt;br /&gt;
            myConnection.Close();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    public class Author&lt;br /&gt;
    {&lt;br /&gt;
        public string Name;&lt;br /&gt;
        public string City;&lt;br /&gt;
        public string Email;&lt;br /&gt;
        public string Website;&lt;br /&gt;
    &lt;br /&gt;
        public Author()&lt;br /&gt;
        {}&lt;br /&gt;
    &lt;br /&gt;
        public string ToString()&lt;br /&gt;
        {&lt;br /&gt;
            string description = &amp;quot;&amp;quot;;&lt;br /&gt;
            description = &amp;quot;Name : &amp;quot; + this.Name + &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;
            description += &amp;quot;City : &amp;quot; + this.City + &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;
            description += &amp;quot;Contact : &amp;lt;a href=mailto:&amp;quot; + this.Email + &amp;quot;&amp;gt;&amp;quot; + this.Email + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;
            description += &amp;quot;Homesite : &amp;lt;a href=&amp;quot;&amp;quot; + this.Website + &amp;quot;&amp;quot;&amp;gt;&amp;quot; + this.Website + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
            return description;&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;body&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Label id=&amp;quot;Label1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:Label&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;appSettings&amp;gt;&lt;br /&gt;
      &amp;lt;add key=&amp;quot;MSDEConnectString&amp;quot;&lt;br /&gt;
           value=&amp;quot;server=(local)\YourDatabase;database=Books;uid=YourID;pwd=letmein;&amp;quot; /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;/appSettings&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;
== Iterating Through A DataReader==&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&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 Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        string ConnectionString = Convert.ToString(ConfigurationSettings.AppSettings[&amp;quot;MSDEConnectString&amp;quot;]);&lt;br /&gt;
        string CommandText = &amp;quot;SELECT AuthorName, AuthorCity, AuthorContact_Email, AuthorWebsite FROM Author&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
        SqlConnection myConnection = new SqlConnection(ConnectionString);&lt;br /&gt;
        SqlCommand myCommand = new SqlCommand(CommandText, myConnection);&lt;br /&gt;
    &lt;br /&gt;
        try&lt;br /&gt;
        {&lt;br /&gt;
            myConnection.Open();&lt;br /&gt;
            SqlDataReader myReader = myCommand.ExecuteReader();&lt;br /&gt;
            if (myReader.HasRows)&lt;br /&gt;
            {&lt;br /&gt;
                while (myReader.Read())&lt;br /&gt;
                {&lt;br /&gt;
                   for (int i=0; i&amp;lt;=myReader.FieldCount-1; i++)&lt;br /&gt;
                   {&lt;br /&gt;
                      if (myReader.IsDBNull(i))&lt;br /&gt;
                      {&lt;br /&gt;
                         Label1.Text += &amp;quot;Warning: Field &amp;quot; + i + &amp;quot; is NULL.&amp;quot;;&lt;br /&gt;
                      }&lt;br /&gt;
                   }&lt;br /&gt;
                   Author p = new Author();&lt;br /&gt;
                   p.Name = myReader.GetString(0);&lt;br /&gt;
                   p.City = myReader.GetString(1);&lt;br /&gt;
                   p.Email = myReader.GetString(2);&lt;br /&gt;
                   p.Website = myReader.GetString(3);&lt;br /&gt;
                   Label1.Text += p.ToString();&lt;br /&gt;
                }&lt;br /&gt;
             }&lt;br /&gt;
             else&lt;br /&gt;
             {&lt;br /&gt;
                Label1.Text = &amp;quot;No rows returned&amp;quot;;&lt;br /&gt;
             }&lt;br /&gt;
    &lt;br /&gt;
            if(!(myReader.IsClosed))&lt;br /&gt;
            {&lt;br /&gt;
             myReader.Close();&lt;br /&gt;
            }&lt;br /&gt;
        } catch (Exception ex) {&lt;br /&gt;
            throw (ex);&lt;br /&gt;
        } finally {&lt;br /&gt;
            myConnection.Close();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public class Author&lt;br /&gt;
    {&lt;br /&gt;
        public string Name;&lt;br /&gt;
        public string City;&lt;br /&gt;
        public string Email;&lt;br /&gt;
        public string Website;&lt;br /&gt;
    &lt;br /&gt;
        public Author()&lt;br /&gt;
        {}&lt;br /&gt;
    &lt;br /&gt;
        public string ToString()&lt;br /&gt;
        {&lt;br /&gt;
            string description = &amp;quot;&amp;quot;;&lt;br /&gt;
            description = &amp;quot;Name : &amp;quot; + this.Name + &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;
            description += &amp;quot;City : &amp;quot; + this.City + &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;
            description += &amp;quot;Contact : &amp;lt;a href=mailto:&amp;quot; + this.Email + &amp;quot;&amp;gt;&amp;quot; + this.Email + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;
            description += &amp;quot;Homesite : &amp;lt;a href=&amp;quot;&amp;quot; + this.Website + &amp;quot;&amp;quot;&amp;gt;&amp;quot; + this.Website + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
            return description;&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;body&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Label id=&amp;quot;Label1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:Label&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;appSettings&amp;gt;&lt;br /&gt;
        &amp;lt;add key=&amp;quot;MSDEConnectString&amp;quot; value=&amp;quot;server=(local)\YourDatabase;database=Books;uid=YourID;pwd=letmein;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/appSettings&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;
== List Binding DataReader==&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&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;
    SqlDataReader myReader;&lt;br /&gt;
    &lt;br /&gt;
    void Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
       string ConnectionString = Convert.ToString(ConfigurationSettings.AppSettings[&amp;quot;MSDEConnectString&amp;quot;]);&lt;br /&gt;
       string CommandText = &amp;quot;SELECT PublisherID, PublisherName FROM Publisher&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
       SqlConnection myConnection = new SqlConnection(ConnectionString);&lt;br /&gt;
       SqlCommand myCommand = new SqlCommand(CommandText, myConnection);&lt;br /&gt;
    &lt;br /&gt;
       try&lt;br /&gt;
       {&lt;br /&gt;
          myConnection.Open();&lt;br /&gt;
    &lt;br /&gt;
          myReader = myCommand.ExecuteReader();&lt;br /&gt;
    &lt;br /&gt;
          ListBox1.DataBind();&lt;br /&gt;
          myReader.Close();&lt;br /&gt;
       }catch (Exception ex) {&lt;br /&gt;
          throw (ex);&lt;br /&gt;
       } finally {&lt;br /&gt;
          myConnection.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;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h1&amp;gt;Pulling Values From Data Bound Lists&amp;amp;nbsp;&lt;br /&gt;
        &amp;lt;/h1&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;A CheckBoxList&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
            &amp;lt;asp:CheckBoxList id=&amp;quot;CheckBoxList1&amp;quot; runat=&amp;quot;server&amp;quot; BorderWidth=&amp;quot;2px&amp;quot; BorderStyle=&amp;quot;Dotted&amp;quot; DataValueField=&amp;quot;PublisherID&amp;quot; DataTextField=&amp;quot;PublisherName&amp;quot; DataSource=&amp;quot;&amp;lt;%# myReader %&amp;gt;&amp;quot;&amp;gt;&amp;lt;/asp:CheckBoxList&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;h2&amp;gt;A RadioButtonList&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
            &amp;lt;asp:RadioButtonList id=&amp;quot;RadioButtonList1&amp;quot; runat=&amp;quot;server&amp;quot; DataValueField=&amp;quot;PublisherID&amp;quot; DataTextField=&amp;quot;PublisherName&amp;quot; DataSource=&amp;quot;&amp;lt;%# myReader %&amp;gt;&amp;quot;&amp;gt;&amp;lt;/asp:RadioButtonList&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;h2&amp;gt;A DropDownList&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
            &amp;lt;asp:DropDownList id=&amp;quot;DropDownList1&amp;quot; runat=&amp;quot;server&amp;quot; DataValueField=&amp;quot;PublisherID&amp;quot; DataTextField=&amp;quot;PublisherName&amp;quot; DataSource=&amp;quot;&amp;lt;%# myReader %&amp;gt;&amp;quot;&amp;gt;&amp;lt;/asp:DropDownList&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;h2&amp;gt;A ListBox&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
            &amp;lt;asp:ListBox id=&amp;quot;ListBox1&amp;quot; runat=&amp;quot;server&amp;quot; DataValueField=&amp;quot;PublisherID&amp;quot; DataTextField=&amp;quot;PublisherName&amp;quot; DataSource=&amp;quot;&amp;lt;%# myReader %&amp;gt;&amp;quot; Rows=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/asp:ListBox&amp;gt;&lt;br /&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;
&lt;br /&gt;
File: Web.config&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
    &amp;lt;appSettings&amp;gt;&lt;br /&gt;
        &amp;lt;add key=&amp;quot;MSDEConnectString&amp;quot; value=&amp;quot;server=(local)\YourDatabase;database=Books;uid=YourID;pwd=letmein;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/appSettings&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;
== Returning Multiple Resultsets==&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\DataLayer1.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.Generic;&lt;br /&gt;
public class DataLayer1&lt;br /&gt;
{&lt;br /&gt;
    private static readonly string _connectionString;&lt;br /&gt;
    public class ProductCategory&lt;br /&gt;
    {&lt;br /&gt;
        private int _id;&lt;br /&gt;
        private string _name;        public int Id&lt;br /&gt;
        {&lt;br /&gt;
            get { return _id; }&lt;br /&gt;
            set { _id = value; }&lt;br /&gt;
        }&lt;br /&gt;
        public string Name&lt;br /&gt;
        {&lt;br /&gt;
            get { return _name; }&lt;br /&gt;
            set { _name = value; }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public class Product&lt;br /&gt;
    {&lt;br /&gt;
        private string _title;&lt;br /&gt;
        private int _categoryId;&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 int CategoryId&lt;br /&gt;
        {&lt;br /&gt;
            get { return _categoryId; }&lt;br /&gt;
            set { _categoryId = value; }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public static void GetProductData(List&amp;lt;DataLayer1.ProductCategory&amp;gt; productCategories, List&amp;lt;DataLayer1.Product&amp;gt; products)&lt;br /&gt;
    {&lt;br /&gt;
        string commandText = &amp;quot;SELECT Id,Name FROM ProductCategories;SELECT Title, CategoryId FROM Products&amp;quot;;&lt;br /&gt;
        SqlConnection con = new SqlConnection(_connectionString);&lt;br /&gt;
        SqlCommand cmd = new SqlCommand(commandText, con);&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;
                DataLayer1.ProductCategory newCategory = new DataLayer1.ProductCategory();&lt;br /&gt;
                newCategory.Id = (int)reader[&amp;quot;Id&amp;quot;];&lt;br /&gt;
                newCategory.Name = (string)reader[&amp;quot;Name&amp;quot;];&lt;br /&gt;
                productCategories.Add(newCategory);&lt;br /&gt;
            }&lt;br /&gt;
            reader.NextResult();&lt;br /&gt;
            while (reader.Read())&lt;br /&gt;
            {&lt;br /&gt;
                DataLayer1.Product newProduct = new DataLayer1.Product();&lt;br /&gt;
                newProduct.Title = (string)reader[&amp;quot;Title&amp;quot;];&lt;br /&gt;
                newProduct.CategoryId = (int)reader[&amp;quot;CategoryID&amp;quot;];&lt;br /&gt;
                products.Add(newProduct);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    static DataLayer1()&lt;br /&gt;
    {&lt;br /&gt;
        _connectionString = WebConfigurationManager.ConnectionStrings[&amp;quot;Products&amp;quot;].ConnectionString;&lt;br /&gt;
    }&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: ShowDataLayer1.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.Collections.Generic&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;
        List&amp;lt;DataLayer1.ProductCategory&amp;gt; categories = new List&amp;lt;DataLayer1.ProductCategory&amp;gt;();&lt;br /&gt;
        List&amp;lt;DataLayer1.Product&amp;gt; products = new List&amp;lt;DataLayer1.Product&amp;gt;();&lt;br /&gt;
        DataLayer1.GetProductData(categories, products);&lt;br /&gt;
        grdCategories.DataSource = categories;&lt;br /&gt;
        grdCategories.DataBind();&lt;br /&gt;
        grdProducts.DataSource = products;&lt;br /&gt;
        grdProducts.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 DataLayer1&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;Product Categories&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;asp:GridView&lt;br /&gt;
        id=&amp;quot;grdCategories&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;Products&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;asp:GridView&lt;br /&gt;
        id=&amp;quot;grdProducts&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;
== Using the DataReader Object==&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;
DataReader represents the results of a database query. &lt;br /&gt;
You get a DataReader by calling a Command object&amp;quot;s ExecuteReader() method.&lt;br /&gt;
Verify whether a DataReader has any rows by checking the HasRows property or calling the Read() method. &lt;br /&gt;
The DataReader represents a single row of data at a time. &lt;br /&gt;
To get the next row of data, you need to call the Read() method. &lt;br /&gt;
When you get to the last row, the Read() method returns False.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Working with Multiple Active Resultsets==&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: ShowMARS.aspx&lt;br /&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&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;!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;
        if (!Page.IsPostBack)&lt;br /&gt;
            BuildTree();&lt;br /&gt;
    }&lt;br /&gt;
    void BuildTree()&lt;br /&gt;
    {&lt;br /&gt;
        string connectionString = @&amp;quot;MultipleActiveResultSets=True;&amp;quot;&lt;br /&gt;
            + @&amp;quot;Data Source=.\SQLExpress;Integrated Security=True;&amp;quot;&lt;br /&gt;
            + @&amp;quot;AttachDBFileName=|DataDirectory|MyDatabase.mdf;User Instance=True&amp;quot;;&lt;br /&gt;
        SqlConnection con = new SqlConnection(connectionString);&lt;br /&gt;
        string cmdCategoriesText = &amp;quot;SELECT Id,Name FROM ProductCategories&amp;quot;;&lt;br /&gt;
        SqlCommand cmdCategories = new SqlCommand(cmdCategoriesText, con);&lt;br /&gt;
        string cmdProductsText = &amp;quot;SELECT Title FROM Products &amp;quot;&lt;br /&gt;
            + &amp;quot;WHERE CategoryId=@CategoryID&amp;quot;;&lt;br /&gt;
        SqlCommand cmdProducts = new SqlCommand(cmdProductsText, con);&lt;br /&gt;
        cmdProducts.Parameters.Add(&amp;quot;@CategoryId&amp;quot;, SqlDbType.Int);&lt;br /&gt;
        using (con)&lt;br /&gt;
        {&lt;br /&gt;
            con.Open();&lt;br /&gt;
            SqlDataReader categories = cmdCategories.ExecuteReader();&lt;br /&gt;
            while (categories.Read())&lt;br /&gt;
            {&lt;br /&gt;
                int id = categories.GetInt32(0);&lt;br /&gt;
                string name = categories.GetString(1);&lt;br /&gt;
                TreeNode catNode = new TreeNode(name);&lt;br /&gt;
                TreeView1.Nodes.Add(catNode);&lt;br /&gt;
                cmdProducts.Parameters[&amp;quot;@CategoryId&amp;quot;].Value = id;&lt;br /&gt;
                SqlDataReader products = cmdProducts.ExecuteReader();&lt;br /&gt;
                while (products.Read())&lt;br /&gt;
                {&lt;br /&gt;
                    string title = products.GetString(0);&lt;br /&gt;
                    TreeNode productNode = new TreeNode(title);&lt;br /&gt;
                    catNode.ChildNodes.Add(productNode);&lt;br /&gt;
                }&lt;br /&gt;
                products.Close();&lt;br /&gt;
            }&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 MARS&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:TreeView&lt;br /&gt;
        id=&amp;quot;TreeView1&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;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>