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]); } } } } }
运行结果:
转自:http://guangguang.163.blog.163.com/blog/static/3295349020100812542109/