zoukankan      html  css  js  c++  java
  • 关于DataSet中Relations的应用

    using System;

    using System.Collections.Generic;

    using System.Text;

    using System.Data;

     

    namespace connect

    {

    class Program

    {

    static void Main(string[] args)

    {

    //建立数据集对象,像数据库一样

    DataSet ds=new DataSet() ;

     

    //建立表

    DataTable dtsb = new DataTable("SB");

    DataTable dtsx = new DataTable("SX");

     

    //SB主表,创建列

    dtsb.Columns.Add(new DataColumn("学号"));

    dtsb.Columns.Add(new DataColumn("姓名"));

    dtsb.Columns.Add(new DataColumn("性别"));

    dtsb.Columns.Add(new DataColumn("总成绩"));

     

    //SX从表,创建列

    dtsx.Columns.Add(new DataColumn("学号"));

    dtsx.Columns.Add(new DataColumn("姓名"));

    dtsx.Columns.Add(new DataColumn("科目"));

    dtsx.Columns.Add(new DataColumn("分成绩"));

     

    //主表数据,创建行

    dtsb.Rows.Add("1","陈一","男","100");

    dtsb.Rows.Add("2", "王二", "女", "90");

    dtsb.Rows.Add("3", "李三", "女", "80");

    dtsb.Rows.Add("4", "赵四", "男", "70");

     

    //从表数据,创建行

    dtsx.Rows.Add("1", "陈一", "语文", "50");

    dtsx.Rows.Add("1", "陈一", "数学", "50");

    dtsx.Rows.Add("2", "王二", "数学", "90");

    dtsx.Rows.Add("3", "李三", "历史", "50");

    dtsx.Rows.Add("3", "李三", "地理", "30");

    dtsx.Rows.Add("4", "赵四", "英文", "70");

     

    //输出主表明细

    Console.WriteLine("我是SB");

    Console.WriteLine("学号 姓名 性别 总成绩");

    foreach (DataRow a in dtsb.Rows)

    {

    Console.WriteLine("{0} {1} {2} {3}", a[0].ToString().PadRight (4,' '),a[1],a[2].ToString().PadRight (4,' '),a[3]);

    }

     

    Console.WriteLine("");

     

    //输出从表明细

    Console.WriteLine("我是SX");

    Console.WriteLine("学号 姓名 科目 分成绩");

    foreach (DataRow a in dtsx.Rows)

    {

    Console.WriteLine("{0} {1} {2} {3}", a[0].ToString().PadRight (4, ' '), a[1], a[2].ToString().PadRight(4, ' '), a[3]);

    }

     

    Console.WriteLine("");

     

    //把表添加到dataset

    ds.Tables.Add(dtsb);

    ds.Tables.Add(dtsx);

     

    //创建关系,以学号为主键

    ds.Relations.Add("SBX", ds.Tables["SB"].Columns["学号"], ds.Tables["SX"].Columns["学号"]);

     

    //历遍主表所有行,将其赋值给drsb

    foreach (DataRow drsb in ds.Relations["SBX"].ParentTable.Rows)

    {

    Console.WriteLine("{0} {1} {2} {3}", drsb[0], drsb[1], drsb[2], drsb[3]);

     

    //历遍drsb所有子行,将其赋值给drsx

    foreach (DataRow drsx in drsb.GetChildRows("SBX"))

    {

    Console.WriteLine(" {0} {1} {2} {3}",drsx[0],drsx[1],drsx[2],drsx[3]);

    }

    }

     

    }

    }

    }

     

  • 相关阅读:
    《淘宝网》之系统质量属性分析
    《架构漫谈》读后感 之“关于软件架构师如何工作”
    《软件需求》读后感06
    《软件需求》读后感05
    Cforeach的详细用法--【转】
    事件(Event)(onclick,onchange,onload,onunload,onfocus,onblur,onselect,onmuse)【转载】
    十七、Mysql的主从(一)--主从原理
    十七、Mysql的主从(二)--主从复制部署
    十六、mysql的备份与恢复(三)--xtrabackup(XBK、Xbackup)
    十六、mysql的备份与恢复(二)--mysqldump
  • 原文地址:https://www.cnblogs.com/disneyland/p/4133369.html
Copyright © 2011-2022 走看看