• 关于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]);

    }

    }

     

    }

    }

    }

     

  • 相关阅读:
    (九)分类展示上
    (八)用户退出
    (七)用户登陆
    opencord视频截图
    (六)电子邮件
    (五)密码加密
    (四)用户注册
    (三)首页处理
    this关键字在继承中的使用
    03.swoole学习笔记--web服务器
  • 原文地址:https://www.cnblogs.com/disneyland/p/4133369.html
Copyright © 2020-2023  润新知