关于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]);
}
}
}
}
}
关于DataSet中Relations的应用的更多相关文章
- DataSet中的relation
DataSet中的relation DataSet是ADO.Net中相当重要的数据访问模型.有一个很大的优点是可以记录多个表之间的关系.有点类似与数据库的外键. 在DataSet中也可以定义类似的关系 ...
- C# 导入Excel到DataSet中
class Import { /// <summary> /// 导入Excel到DataSet中 /// </summary> /// <param name=&quo ...
- 使用OpenXml把Excel中的数据导出到DataSet中
public class OpenXmlHelper { /// <summary> /// 读取Excel数据到DataSet中,默认读取所有Sheet中的数据 /// </sum ...
- DataSet 中的数据排序 及 DataRow装成DataTable
1.DataSet 中的数据排序 DataSet ds = new DataSet(); // 获取当前排口的数据 ds = _xiaobill.GetHistoryData(yinZiBianm, ...
- DataSet中取值(转)
1 DataSet.Table[0].Rows[ i ][ j ] 其中i 代表第 i 行数, j 代表第 j 列数 2 DataSet.Table[0].Rows[ i ].ItemArray[ j ...
- 在DATASET中要是想添加进另一个表怎么办?
问:sql="select * from banzhu_manage ";adapter=new SqlDataAdapter(sql,banzhu_conn);adapter.F ...
- C# 手动编写 DataSet,DataTable 及遍历DataSet中的数据
一.手动编写DataSet: 有时候不想从数据库导出 DataSet,或者有其他的需要,要将数据库里的DataSet包装成另一个样子,这个时候,了解DataSet的内部结构就非常必要.DataS ...
- C#中DataSet中的relation
//关系定义的方法是 DataRelation 变量名 = “DataSet对象”.Relations.Add("关系名",DataSet对象.主表.列名 , DataSet对象. ...
- 导入本地Excel到DataSet中
/// <summary> /// 导入本地Excel到DataSet中 /// </summary> /// <param name="strFileSour ...
随机推荐
- 敏捷测试(4)--基于story的敏捷基础知识
基于story的敏捷基础知识----需求管理(一) 基于story进行需求管理 (1)使用story模式来管理需求,将庞大的MRD划分为一个个合适粒度,且可独立交付的story(通常每个story能在 ...
- ConcurrentHashMap和HashTable的区别
hashtable是做了同步的,hashmap未考虑同步.所以hashmap在单线程情况下效率较高.hashtable在的多线程情况下,同步操作能保证程序执行的正确性. 但是hashtable每次同步 ...
- unity实现玻璃效果
一.使用Cubemap,做一个假反射 shader代码如下: Shader "Custom/glassShader" { Properties { _MainColor(" ...
- 让你的动画不再生硬 Android插值器Interpolator使用秘籍
有木有厌烦生硬的动画效果,想不想让你的动画变得圆滑且 欢迎收看本期的走进科学... 停,停,别打了,(.﹏.*) 我错了-- 我们要达到的效果: 先来回顾一下普通动画的用法吧. * 缩放动画 Scal ...
- Mahout LDA 聚类
Mahout LDA 聚类 一.LDA简介 (一)主题模型 在主题模型中,主题表示一个概念.一个方面,表现为一系列相关的单词,是这些单词的条件概率.形象来说,主题就是一个桶,里面装了出现概率较高的 ...
- Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验
Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...
- 【单片机】基于有方GPRS的智能电梯控制系统
前一篇文章<时钟及温度的显示>中所介绍的作品,是作为一个单片机新手在暑假学了一个月的单片机之后,做的第一个综合性作品,涵盖了二极管.蜂鸣器.数码管.液晶屏.按键.时钟芯片.温度传感器的控制 ...
- 【cocos 2d-x】VS2013+cocos2d-x3.3Final+Adriod交叉编译环境配置(超详细版)
本系列文章由@二货梦想家张程 所写,转载请注明出处. 作者:ZeeCoder 微博链接:http://weibo.com/zc463717263 我的邮箱:michealfloyd@126.com ...
- Linux引导流程(第二版)
Linux引导流程 柱面,0磁头,1扇区 如图:] 进入这一步骤的目的是[通常,PID是随机分配的,但是init特殊,可以通过命令:ps -el | more 查看],Linux系统中init名义上可 ...
- Visual studio2010和Modelsim配置SystemC开发(转)
本文转自一博文. 一.编译System库 1. 下载SystemC library source code, 到http://www.systemc.org注册会员账号后,即可下载SystemC li ...