<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataRelation.aspx.cs" Inherits="DataRelation" %> <%@ Import Namespace="System.Data" %>
Untitled Page
using using using using using using using using using using
System; System.Data; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;
public partial class DataRelation : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GridView1.DataSource = CreateDS().Tables["Company"]; GridView1.DataBind(); } } private DataSet CreateDS() { DataSet ds; if (Session["DataList_ParentChild"] == null) { ds = new DataSet(); DataTable dt = new DataTable("Company"); DataRow dr; dt.Columns.Add(new DataColumn("ID", typeof(Int32))); dt.Columns.Add(new DataColumn("CompanyName", typeof(string))); dt.Columns.Add(new DataColumn("Address", typeof(string))); dt.Columns.Add(new DataColumn("Name", typeof(string))); dt.Columns.Add(new DataColumn("Dept", typeof(string))); for (int i = 1; i < 10; i++) { dr = dt.NewRow(); dr[0] = i;
dr[1] = "Company " + i; dr[2] = "Address " + i; dr[3] = "Manager name"; dr[4] = "Adminstration"; dt.Rows.Add(dr); } ds.Tables.Add(dt); DataColumn[] Parent_PKColumns = new DataColumn[1]; Parent_PKColumns[0] = dt.Columns["ID"]; dt.PrimaryKey = Parent_PKColumns; dt = new DataTable("Employees"); dt.Columns.Add(new DataColumn("ID", typeof(Int32))); dt.Columns.Add(new DataColumn("CompanyID", typeof(Int32))); dt.Columns.Add(new DataColumn("Name", typeof(string))); dt.Columns.Add(new DataColumn("Dept", typeof(string))); for (int i = 1; i < 10; i++) { int imax = 0; if (i % 2 == 0) imax = 5; else imax = 4; for (int y = 2; y < imax; y++) //3 emplyees for each company { dr = dt.NewRow(); dr[0] = y + i * 5; dr[1] = i; dr[2] = "Employee # " + dr[0]; dr[3] = "Dept # " + (y + i); dt.Rows.Add(dr); } } DataColumn[] Child_PKColumns = new DataColumn[1]; Child_PKColumns[0] = dt.Columns["ID"]; dt.PrimaryKey = Child_PKColumns; ds.Tables.Add(dt); DataColumn[] Child_FKColumns = new DataColumn[1]; Child_FKColumns[0] = dt.Columns["CompanyID"];
ds.Relations.Add("ParentChild", Parent_PKColumns,
Child_FKColumns); Session["DataList_ParentChild"] = ds; } else { ds = (DataSet)Session["DataList_ParentChild"]; } return ds; } }