File: Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="TableRelationships" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblList" runat="server" EnableViewState="False"></asp:Label>
</div>
</form>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Web.Configuration;
public partial class TableRelationships : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
CreateList();
}
}
private string connectionString = WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString;
private void CreateList()
{
string selectSQL = "SELECT au_lname, au_fname, au_id FROM Authors";
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(selectSQL, con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dsPubs = new DataSet();
try
{
con.Open();
adapter.Fill(dsPubs, "Authors");
cmd.CommandText = "SELECT au_id, title_id FROM TitleAuthor";
adapter.Fill(dsPubs, "TitleAuthor");
cmd.CommandText = "SELECT title_id, title FROM Titles";
adapter.Fill(dsPubs, "Titles");
}
catch (Exception err)
{
lblList.Text = "Error reading list of names. ";
lblList.Text += err.Message;
}
finally
{
con.Close();
}
DataRelation Titles_TitleAuthor = new DataRelation("Titles_TitleAuthor",dsPubs.Tables["Titles"].Columns["title_id"],dsPubs.Tables["TitleAuthor"].Columns["title_id"]);
DataRelation Authors_TitleAuthor = new DataRelation("Authors_TitleAuthor",dsPubs.Tables["Authors"].Columns["au_id"],dsPubs.Tables["TitleAuthor"].Columns["au_id"]);
dsPubs.Relations.Add(Titles_TitleAuthor);
dsPubs.Relations.Add(Authors_TitleAuthor);
foreach (DataRow rowAuthor in dsPubs.Tables["Authors"].Rows)
{
lblList.Text += "<br /><b>" + rowAuthor["au_fname"];
lblList.Text += " " + rowAuthor["au_lname"] + "</b><br />";
foreach (DataRow rowTitleAuthor in
rowAuthor.GetChildRows(Authors_TitleAuthor))
{
foreach (DataRow rowTitle in
rowTitleAuthor.GetParentRows(Titles_TitleAuthor))
{
lblList.Text += " ";
lblList.Text += rowTitle["title"] + "<br />";
}
}
}
}
}
File: Web.config
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="Pubs" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=Pubs;Integrated Security=SSPI"/>
</connectionStrings>
</configuration>
|