Handle table relationship (C#) : SqlServer « ADO.net Database « ASP.NET Tutorial






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>








18.42.SqlServer
18.42.1.Connect to SQL server with integrated Authentication or SQL Authentication
18.42.2.Execute delete command with SqlCommand against SqlServer
18.42.3.You can connect to a Local database named MyLocalData.mdf by using the following connection string:
18.42.4.For example, the following connection string enables you to connect to a Server database named MyData:
18.42.5.You use SQLCMD by opening a command prompt and connecting to your database with the following command:
18.42.6.Read data from SQL server and fill asp:dropdownlist (C#)
18.42.7.Handle table relationship (C#)
18.42.8.Insert, update and delete (C#)