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

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/ADO.net_Database/DataRelation&amp;diff=2709&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/DataRelation&amp;diff=2709&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/DataRelation&amp;diff=2710&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/DataRelation&amp;diff=2710&amp;oldid=prev"/>
				<updated>2010-05-26T11:56:53Z</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;== Using Data Relations==&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;Default_aspx&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;asp:GridView ID=&amp;quot;GridView1&amp;quot; &lt;br /&gt;
                   runat=&amp;quot;server&amp;quot;&lt;br /&gt;
              CellPadding=&amp;quot;4&amp;quot; &lt;br /&gt;
        ForeColor=&amp;quot;#333333&amp;quot; &lt;br /&gt;
        GridLines=&amp;quot;None&amp;quot; &lt;br /&gt;
        DataKeyNames=&amp;quot;OrderID&amp;quot; &lt;br /&gt;
        AutoGenerateColumns=&amp;quot;False&amp;quot; &lt;br /&gt;
        PagerSettings-Mode=&amp;quot;Numeric&amp;quot;&lt;br /&gt;
        AllowPaging=&amp;quot;true&amp;quot;&lt;br /&gt;
        PageSize=&amp;quot;5&amp;quot;&lt;br /&gt;
        OnSelectedIndexChanged=&amp;quot;OnSelectedIndexChangedHandler&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;FooterStyle BackColor=&amp;quot;#5D7B9D&amp;quot; Font-Bold=&amp;quot;True&amp;quot; ForeColor=&amp;quot;White&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;RowStyle BackColor=&amp;quot;#F7F6F3&amp;quot; ForeColor=&amp;quot;#333333&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;PagerStyle BackColor=&amp;quot;#284775&amp;quot; ForeColor=&amp;quot;White&amp;quot; HorizontalAlign=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;SelectedRowStyle BackColor=&amp;quot;#E2DED6&amp;quot; Font-Bold=&amp;quot;True&amp;quot; ForeColor=&amp;quot;#333333&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;HeaderStyle BackColor=&amp;quot;#5D7B9D&amp;quot; Font-Bold=&amp;quot;True&amp;quot; ForeColor=&amp;quot;White&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;EditRowStyle BackColor=&amp;quot;#999999&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;AlternatingRowStyle BackColor=&amp;quot;White&amp;quot; ForeColor=&amp;quot;#284775&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Columns&amp;gt;&lt;br /&gt;
          &amp;lt;asp:ButtonField ButtonType=&amp;quot;Button&amp;quot; CommandName=&amp;quot;Select&amp;quot; Text=&amp;quot;Details&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;asp:BoundField DataField=&amp;quot;OrderID&amp;quot; HeaderText=&amp;quot;Order ID&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;asp:BoundField DataField=&amp;quot;OrderDate&amp;quot; HeaderText=&amp;quot;Order Date&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;asp:BoundField DataField=&amp;quot;CompanyName&amp;quot; HeaderText=&amp;quot;Company&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;asp:BoundField DataField=&amp;quot;ContactTitle&amp;quot; HeaderText=&amp;quot;Contact&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;asp:BoundField DataField=&amp;quot;Phone&amp;quot; HeaderText=&amp;quot;Phone&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;br /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Panel id=&amp;quot;OrderDetailsPanel&amp;quot; runat=server Height=50px Width=125px &amp;gt;&lt;br /&gt;
        &amp;lt;asp:GridView ID=&amp;quot;DetailsGridView&amp;quot; runat=&amp;quot;server&amp;quot;&lt;br /&gt;
            AutoGenerateColumns=&amp;quot;False&amp;quot; &lt;br /&gt;
            BackColor=&amp;quot;LightGoldenrodYellow&amp;quot; &lt;br /&gt;
            BorderColor=&amp;quot;Tan&amp;quot; &lt;br /&gt;
            BorderWidth=&amp;quot;1px&amp;quot; &lt;br /&gt;
            CellPadding=&amp;quot;2&amp;quot; &lt;br /&gt;
            ForeColor=&amp;quot;Black&amp;quot; &lt;br /&gt;
            GridLines=&amp;quot;None&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;FooterStyle BackColor=&amp;quot;Tan&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;Columns&amp;gt;&lt;br /&gt;
                &amp;lt;asp:BoundField DataField=&amp;quot;OrderDate&amp;quot; HeaderText=&amp;quot;Order Date&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;asp:BoundField DataField=&amp;quot;ProductName&amp;quot; HeaderText=&amp;quot;Product&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;asp:BoundField DataField=&amp;quot;UnitPrice&amp;quot; HeaderText=&amp;quot;Price&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;asp:BoundField DataField=&amp;quot;Quantity&amp;quot; HeaderText=&amp;quot;Quantity&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;/Columns&amp;gt;&lt;br /&gt;
            &amp;lt;PagerStyle BackColor=&amp;quot;PaleGoldenrod&amp;quot; &lt;br /&gt;
              ForeColor=&amp;quot;DarkSlateBlue&amp;quot; HorizontalAlign=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;SelectedRowStyle BackColor=&amp;quot;DarkSlateBlue&amp;quot; ForeColor=&amp;quot;GhostWhite&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;HeaderStyle BackColor=&amp;quot;Tan&amp;quot; Font-Bold=&amp;quot;True&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;AlternatingRowStyle BackColor=&amp;quot;PaleGoldenrod&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;
    &amp;lt;/asp:Panel&amp;gt;&lt;br /&gt;
     &amp;lt;br /&amp;gt;&lt;br /&gt;
     &amp;lt;asp:GridView ID=&amp;quot;OrderRelationsGridView&amp;quot; runat=&amp;quot;server&amp;quot;&lt;br /&gt;
        BackColor=&amp;quot;White&amp;quot; &lt;br /&gt;
        BorderColor=&amp;quot;#CC9966&amp;quot;&lt;br /&gt;
        BorderStyle=&amp;quot;None&amp;quot; &lt;br /&gt;
        BorderWidth=&amp;quot;1px&amp;quot; &lt;br /&gt;
        CellPadding=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;FooterStyle BackColor=&amp;quot;#FFFFCC&amp;quot; ForeColor=&amp;quot;#330099&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;RowStyle BackColor=&amp;quot;White&amp;quot; ForeColor=&amp;quot;#330099&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;PagerStyle BackColor=&amp;quot;#FFFFCC&amp;quot; ForeColor=&amp;quot;#330099&amp;quot; HorizontalAlign=&amp;quot;Center&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;SelectedRowStyle BackColor=&amp;quot;#FFCC66&amp;quot; Font-Bold=&amp;quot;True&amp;quot; ForeColor=&amp;quot;#663399&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;HeaderStyle BackColor=&amp;quot;#990000&amp;quot; Font-Bold=&amp;quot;True&amp;quot; ForeColor=&amp;quot;#FFFFCC&amp;quot; /&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: 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.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;
public partial class Default_aspx : System.Web.UI.Page &lt;br /&gt;
{&lt;br /&gt;
    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
     DataSet ds = CreateDataSet();&lt;br /&gt;
     GridView1.DataSource = ds.Tables[0];&lt;br /&gt;
     GridView1.DataBind();&lt;br /&gt;
     DataView detailsView = new DataView(ds.Tables[1]);&lt;br /&gt;
     DetailsGridView.DataSource = detailsView;&lt;br /&gt;
     Session[&amp;quot;DetailsView&amp;quot;] = detailsView;&lt;br /&gt;
     DetailsGridView.DataBind();&lt;br /&gt;
     OrderRelationsGridView.DataSource = ds.Relations;&lt;br /&gt;
     OrderRelationsGridView.DataBind();&lt;br /&gt;
    }&lt;br /&gt;
   private DataSet CreateDataSet()&lt;br /&gt;
   {&lt;br /&gt;
     string connectionString = &amp;quot;Data Source=LocalHost;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=sa_0001&amp;quot;;&lt;br /&gt;
     System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(connectionString);&lt;br /&gt;
     connection.Open();&lt;br /&gt;
     System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();&lt;br /&gt;
     command.Connection = connection;&lt;br /&gt;
     StringBuilder s = new StringBuilder(&amp;quot;select OrderID, c.rupanyName, c.ContactName, &amp;quot;);&lt;br /&gt;
     s.Append(&amp;quot; c.ContactTitle, c.Phone, orderDate&amp;quot;);&lt;br /&gt;
     s.Append(&amp;quot; from orders o &amp;quot;);&lt;br /&gt;
     s.Append(&amp;quot;join customers c on c.CustomerID = o.CustomerID&amp;quot;);&lt;br /&gt;
     command.rumandText = s.ToString();&lt;br /&gt;
     SqlDataAdapter dataAdapter = new SqlDataAdapter();&lt;br /&gt;
     dataAdapter.SelectCommand = command;&lt;br /&gt;
     dataAdapter.TableMappings.Add(&amp;quot;Table&amp;quot;, &amp;quot;Orders&amp;quot;);&lt;br /&gt;
     DataSet dataSet = new DataSet();&lt;br /&gt;
     dataAdapter.Fill(dataSet);&lt;br /&gt;
     System.Data.SqlClient.SqlCommand command2 =&lt;br /&gt;
       new System.Data.SqlClient.SqlCommand();&lt;br /&gt;
     command2.Connection = connection;&lt;br /&gt;
     StringBuilder s2 = new StringBuilder(&amp;quot;Select od.OrderID, OrderDate, p.ProductID, &amp;quot;);&lt;br /&gt;
     s2.Append(&amp;quot; ProductName, od.UnitPrice, Quantity &amp;quot;);&lt;br /&gt;
     s2.Append(&amp;quot;from Orders o &amp;quot;);&lt;br /&gt;
     s2.Append(&amp;quot;join [Order Details] od on o.orderid = od.orderid &amp;quot;);&lt;br /&gt;
     s2.Append(&amp;quot;join products p on p.productID = od.productid &amp;quot;);&lt;br /&gt;
     command2.rumandText = s2.ToString();&lt;br /&gt;
     SqlDataAdapter dataAdapter2 = new SqlDataAdapter();&lt;br /&gt;
     dataAdapter2.SelectCommand = command2;&lt;br /&gt;
     dataAdapter2.TableMappings.Add(&amp;quot;Table&amp;quot;, &amp;quot;Order Details&amp;quot;);&lt;br /&gt;
     dataAdapter2.Fill(dataSet);&lt;br /&gt;
     System.Data.SqlClient.SqlCommand command3 =&lt;br /&gt;
       new System.Data.SqlClient.SqlCommand();&lt;br /&gt;
     command3.Connection = connection;&lt;br /&gt;
     string strCommand3 = &amp;quot;Select ProductID, ProductName from Products&amp;quot;;&lt;br /&gt;
     command3.rumandText = strCommand3;&lt;br /&gt;
     SqlDataAdapter dataAdapter3 = new SqlDataAdapter();&lt;br /&gt;
     dataAdapter3.SelectCommand = command3;&lt;br /&gt;
     dataAdapter3.TableMappings.Add(&amp;quot;Table&amp;quot;, &amp;quot;Products&amp;quot;);&lt;br /&gt;
     dataAdapter3.Fill(dataSet);&lt;br /&gt;
     System.Data.DataRelation dataRelation;&lt;br /&gt;
     System.Data.DataColumn dataColumn1;&lt;br /&gt;
     System.Data.DataColumn dataColumn2;&lt;br /&gt;
     dataColumn1 = dataSet.Tables[&amp;quot;Orders&amp;quot;].Columns[&amp;quot;OrderID&amp;quot;];&lt;br /&gt;
     dataColumn2 = dataSet.Tables[&amp;quot;Order Details&amp;quot;].Columns[&amp;quot;OrderID&amp;quot;];&lt;br /&gt;
     dataRelation =&lt;br /&gt;
       new System.Data.DataRelation(&lt;br /&gt;
       &amp;quot;OrdersToDetails&amp;quot;,&lt;br /&gt;
       dataColumn1,&lt;br /&gt;
       dataColumn2);&lt;br /&gt;
     dataSet.Relations.Add(dataRelation);&lt;br /&gt;
     dataColumn1 = dataSet.Tables[&amp;quot;Products&amp;quot;].Columns[&amp;quot;ProductID&amp;quot;];&lt;br /&gt;
     dataColumn2 = dataSet.Tables[&amp;quot;Order Details&amp;quot;].Columns[&amp;quot;ProductID&amp;quot;];&lt;br /&gt;
     dataRelation =&lt;br /&gt;
       new System.Data.DataRelation(&lt;br /&gt;
       &amp;quot;ProductIDToName&amp;quot;,&lt;br /&gt;
       dataColumn1,&lt;br /&gt;
       dataColumn2);&lt;br /&gt;
     dataSet.Relations.Add(dataRelation);&lt;br /&gt;
     return dataSet;&lt;br /&gt;
   }&lt;br /&gt;
  public void OnSelectedIndexChangedHandler(Object sender, EventArgs e)&lt;br /&gt;
  {&lt;br /&gt;
    UpdateDetailsGrid();&lt;br /&gt;
  }&lt;br /&gt;
  private void UpdateDetailsGrid()&lt;br /&gt;
  {&lt;br /&gt;
    int index = GridView1.SelectedIndex;&lt;br /&gt;
    if (index != -1)&lt;br /&gt;
    {&lt;br /&gt;
      DataKey key = GridView1.DataKeys[index];&lt;br /&gt;
      int orderID = (int)key.Value;&lt;br /&gt;
      DataView detailsView = (DataView)Session[&amp;quot;detailsView&amp;quot;];&lt;br /&gt;
      detailsView.RowFilter = &amp;quot;OrderID = &amp;quot; + orderID;&lt;br /&gt;
      DetailsGridView.DataSource = detailsView;&lt;br /&gt;
      DetailsGridView.DataBind();&lt;br /&gt;
      OrderDetailsPanel.Visible = true;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      OrderDetailsPanel.Visible = false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>