关于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 ...
随机推荐
- 【shell脚本练习】grep sed awk
下面是简单学习之后做得练习题,如果有不对的或者说解题思路不好的,请交流啊. Grep 练习 文件名grepfile Steve Blenheim:238-923-7366:95 Latham Lane ...
- matlab学习日志之并行运算
原文地址:matlab并行计算,大家共同学习吧,涉及到大规模数据量处理的时候还是效果很好的 今天搞了一下matlab的并行计算,效果好的出乎我的意料. 本来CPU就是双核,不过以前一直注重算法,没注意 ...
- EBS Concurrent Manager(并发管理器)异常处理[final]
来自:http://blog.itpub.net/35489/viewspace-742191/ 有时候我们在通过 adstpall.sh 关闭应用后,然后再使用adstrtal.sh开启.发现并发 ...
- 【一天一道LeetCode】#25. Reverse Nodes in k-Group
一天一道LeetCode系列 (一)题目 Given a linked list, reverse the nodes of a linked list k at a time and return ...
- 菜鸟玩云计算之二十:saltstack入门初步
菜鸟玩云计算之二十 SaltStack 入门初步 0. saltstack 是什么 参考下面的文章: http://docs.saltstack.com/en/latest/topics/tutori ...
- saiku查询结果返回地址(saiku交互过程)
提交mdx语句,执行后, 查询结果的获得,访问这个地址: http://99.999.99.99:8080/saiku/rest/saiku/anonymousUser/query/4FF7D01E- ...
- cocos2d-x 读写 xml 文件
cocos2d-x 读写 xml 文件 A product of cheungmine使用cocos2d-x开发2d游戏确实方便,但是对于一般的小游戏,经常需要的工作是UI布局设计和调整,代码改来改去 ...
- Leetcode_237_Delete Node in a Linked List
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/47334649 Write a function to de ...
- Libevent库学习笔记
Libevent是一个事件触发的网络库,适用于windows.linux.bsd等多种平台,Libevent在底层select.pool.kqueue和epoll等机制基础上,封装出一致的事件接口.可 ...
- ruby技巧001:求md5散列
ruby核心库中未包含md5之类的功能,不过在其标准库digest中可以方便的使用该功能: = Digest (from ruby core) ---------------------------- ...