DataSet 多表关系

        protected void Page_Load(object sender, EventArgs e)
        {
            string connectionString = @"Data Source=.;Initial Catalog=Pubs;Integrated Security=SSPI";
            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");

                //多对多关系
                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))
                    {
                        DataRow rowTitle = rowTitleAuthor.GetParentRows(Titles_TitleAuthor)[0];
                        lblList.Text += "  ";
                        lblList.Text += rowTitle["title"] + "<br />";
                    }
                }

            }
            catch (Exception err)
            {
                lblList.Text = "Error reading list of names. ";
                lblList.Text = err.Message;
            }
            finally
            {
                con.Close();
            }
        }

DataSet 多表关系

时间: 2024-08-27 12:32:17

DataSet 多表关系的相关文章

Hibernate多表关系

Hibernate多表关系 hibernate 一对多(多对一) 创建实体 配置ORM映射文件 创建测试文件 双方关系维护 级联操作 外键的维护权管理 双方关系维护.级联操作.外键维护权之间的关系 一对多(多对一) 在一个视频管理的系统中应该包含这样两个表讲课人Speaker.视频Video.其中一个讲课人可以讲多个视频,而一个视频只能属于一个讲课人:在这里Speaker就是一的状态,Video就是多的状态. 创建实体 在Speaker中添加set集合(如果添加list集合需要在配置文件中额外配

MySQL WorkBench6.1生成各表关系图

MySQL WorkBench生成各表关系图网上教程很多,但我下的6.1版就死活找不到,不过最终还是找到了.首页的这里 MySQL WorkBench6.1生成各表关系图

简单分析做过的三个项目的部分表关系

第一个项目:教务管理系统 分析其中的 用户.角色.功能.权限之间的关系: 第二个项目:网上商城 这个就不画图了,感觉上个图好丑,专业工具找不到了,见谅! 数据库表: 图书表book.图书类别bookType.顾客表customer表.顾客详细表customerDetail.菜单表menu 消息表news.订单表ordermain.订单明细表orderdetail.收货地址表shopaddress. 系统用户表sysAdmin表关系:book: n-----1 bookTypecustomer:

BSEG 和其他六个表关系

BSEG和其他六个表关系 BSEG里两个字段SAKNR(总账科目),HKONT(总账账目)的区别 HKONT里放的是凭证真实的总帐科目,SAKNR放的是供应商或客户的统驭科目. 如果某凭证行项目不是统驭科目,则SAKNR是空的,如果你输入正常的统驭科目凭证,这两个字段是相同的, 但当你输入特殊总帐凭证时,SAKNR里存的是统驭科目,HKONT放的是特殊总帐科目 BSAS+BSIS+BSAK+BSIK+BSAD+BSID = BSEG BSAS │ BSIS ==>all GL documents

GL_HZ Party和Supplier、Bank表关系详解

2014-06-26 BaoXinjian 一.摘要 基本在做supplier, customer, employee查询,都会涉及hz_parties表的使用,通过主外键party_id进行关联 二. 案例 1. 查询Supplier相关信息 2. 供应商主表数据 1 SELECT ass.vendor_id vendor_id, 2 ass.party_id party_id, 3 ass.segment1 vendor_code, 4 ass.vendor_name vendor_name

Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理

Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理 本博文主要介绍 Laravel 框架中 Eloquent  对一对多关系的处理,在 Laravel Administrator(后台扩展包) 您的数据库可能是彼此相关的.比如,一篇博客文章可能有许多评论,或者一个订单与下订单的用户相关.Eloquent 使得管理和处理这些关系变得简单.Laravel 提供了四种类型的关系: -一对一 -一对多 - 多对多 - 多态关系 一对多 一个一对多关系的例子是一篇博客文章有许多评

Hibernate框架进阶(中篇)之多表关系

导读 Hibernate进阶主要分为上中下三篇,本文是中篇,主要讲解Hibernate框架中多表关系的实现.我们知道多表关系有一对一.一对多(多对一)和多对多三种关系.而1对1关系一般合并为一个表处理,所以本文主要讲解1对多和多对多关系的实现. 一.一对多关系 一对多的关系很多,比如人和籍贯就是一对多的关系,下面就用人和籍贯这个实例来展开说明. 1.数据库的实现 对于一对多关系的建立,我们通常是使用外键(foreign key)来表示.外键列添加在一对多的"多"这一方.这里用perso

表关系(一对一,一对多,多对多)

可以在数据库图表中的表之间创建关系,以显示一个表中的列与另一个表中的列是如何相链接的. 在一个关系型数据库中,利用关系可以避免多余的数据.例如,如果设计一个可以跟踪图书信息的数据库,您需要创建一个名为 titles 的表,它用来存储有关每本书的信息,例如书名.出版日期和出版社.您也可能保存有关出版社的信息,诸如出版社的电话.地址和邮政编码.如果您打算在 titles 表中保存所有这些信息,那么对于某出版社出版的每本书都会重复该出版社的电话号码. 更好的方法是将有关出版社的信息在单独的表,publ

django-创建表的字段属性,表关系

表的各种属性文档:null char ..., django与之对应的文档 https://docs.djangoproject.com/en/1.11/ref/models/fields/   英文 https://yiyibooks.cn/xx/Django_1.11.6/ref/models/fields.html     中文 表关系 class Book(models.Model): headline = models.CharField('大标题', max_length=50) p