Mega Code Archive

 
Categories / ASP.Net Tutorial / ADO Net Database
 

Handle table relationship (C#)

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 += "&nbsp;&nbsp;";                     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>