




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、如果要显示两张数据库表的记录,最简单的方法是检索时将两张表中你要的数据一次检索 出来,放入同一个DataTable来显示。如果要显示两个以上DataTable中的数据,则需要将DataTable放入DataSet并建立relation 就可以显示了。下面是刚做的一个例子。另外,父表一定要有主键。建立关联时要用主键。private void button1_Click(object sender, System.EventArgs e)DataTable dtName = new DataTable(NameDt);dtName.Columns.Add(ID”, typeof(string);d
2、tName.Columns.Add(Name”, typeof(string);dtName.PrimaryKey = new DataColumn dtName.ColumnsID ;dtName.Rows.Add(1, Name1);DataTable dtAddress = new DataTable(AddressDt);dtAddress.Columns.Add(ID”, typeof(string);dtAddress.Columns.Add(Address”, typeof(string);dtAddress.Rows.Add(1, Address1);dtAddress.Row
3、s.Add(1, Address2);DataSet ds = new DataSet();ds.Tables.Add(dtName);ds.Tables.Add(dtAddress);/关键!建立表之间的关联ds.Relations.Add(ForName, dtName.ColumnsID, dtAddress.ColumnsID);/在子表中添加计算列,引用父表的数据。dtAddress.Columns.Add(Name”, typeof(string), Parent(ForName).Name);dataGridView1.AutoGenerateColumns = false;da
4、taGridView1.DataSource = ds;dataGridView1.DataMember = AddressDt;DataSet多表关联实现本地数据复杂的查询c-sharp view plaincopyDataSet ds = new DataSet();2./提取第一个表放在ds中dp.CommandText = SELECT * FROM ss_RolesInAction;ds.Tables.Add(dp.ExecuteDataTable(ss_RolesInAction);6./提取第二个表放在ds中dp.CommandText = SELECT * FROM ss_Ac
5、tion;ds.Tables.Add(dp.ExecuteDataTable(ss_Action);10./提取第三个表放在ds中dp.CommandText = SELECT * FROM as_SiteMap;ds.Tables.Add(dp.ExecuteDataTable(as_SiteMap);14.建立关系 ss_Action.FID = ss_RolesInAction.FActionID , ss_RolesInAction.FActionID 为外键ds.Relations.Add(relation1, ds.Tables1.ColumnsFID, ds.Ta bles0.C
6、olumnsFActionID);建立关系 as_SiteMap.ID = ss_RolesInAction.FNodeID , ss_RolesInAction.FNodeID 为外键ds.Relations.Add(relation2, ds.Tables2.ColumnsID, ds.Tab les0.ColumnsFNodeID);19.20./查询条件测试1:对父表查询获取子表测试/条件为 ss_Action.FID 等于 6E7BB6B5-4DDA-4BB9-A156-71288CEF16B2 的或是 ss_RolesInAction.FActionID 等 于 DB893F4E-
7、B411-4FC0-9735-D5E9B7823083 或是 as_SiteMap.id 等于 7 的/因为已经建立三个表的关系,所以,无论查询条件是什么都会跟上关系中的 条件即:/ss_Action.FID = ss_RolesInAction.FActionID AND as_SiteMap.ID = ss_RolesInAction.FNodeID/当我们指定的查询条件为空时会根据关联关系查询以下条件中的完整关联 关系是这样的/(ss_Action.FID = ss_RolesInAction.FActionID AND as_SiteMap.ID =ss_RolesInAction.F
8、NodeID ) and ss_Action.FID=6E7BB6B5-4DDA-4BB9-A156-7128 8CEF16B2 or ss_RolesInAction.FActionID= DB893F4E-B411-4FC0-9735-D5E9B78230 83 or as_SiteMap.id=7DataView dv = ds.Tables0.DefaultView;dv.RowFilter = parent(relation1).FID=6E7BB6B5-4DDA-4BB9-A156-7 1288CEF16B2 or FActionID= DB893F4E-B411-4FC0-973
9、5-D5E9B7823083 or parent( relation2).id=7;29./查询条件测试2:对子表查询获取父表测试/因为子表与父表是多对一的关系所以我们对子表查询时会返回多个值所 以使用MAX函数DataView dv = ds.Tables1.DefaultView;dv.RowFilter = max(child(relation1).FActionID) in (FFD953C4-09 20-4558-B87F-3A25CFB15754,FC5C91F5-45ED-4B3E-8E14-C2391B9A6B14) ;/这个查 询条件中无法关联as_SiteMap查询条件因为
10、没有查询表as_SiteMap和返回表ss_Action的条件34.this.GridView1.DataSource = dv;this.GridView1.DataBind();在Winform中将数据库中的多张表同时显示在多个DataGridView中的方法2009-08-28 12:11:05|分类:C#|举报|字号订阅方法一:使用SqlDataAdapter向DataGridView添加数据时,可以在其参数中添加多条SQL语句,查询出的结果分别保存在多个DataSet中,在为多个DataGridView指定数据源时,将DataSet中的多张 表依次赋给每个DataGridVie即可。
11、关键代码:private void Form1_Load(object sender, EventArgs e)using (SqlDataAdapter da = new SqlDataAdapter(select * fromProduct;select * from Product,DBService.Conn)DataSet ds = new DataSet();da.Fill(ds);this.dataGridViewl.DataSource = ds.Tables0;this.dataGridView2.DataSource = ds.Tables1;方法二在使用SqlDataReader向DataGridView添加数据时,也是在其参数中添加多条SQL语句,但不同的是,在为DataGridView指定数据源时,可以利用DataReader对象的Read()和NextResult()方法,并且以for循环的方式来显示在多个DataGridView中;关键代码:private void button1_Click(object sender, EventArgs e)using (SqlCommand cmd = new SqlCommand(select * from jobs;select * from sale
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合作合同书(音乐制作人)
- 企业并购重组服务行业深度调研及发展战略咨询报告
- 触觉体验馆行业深度调研及发展战略咨询报告
- 运动扶贫基金行业跨境出海战略研究报告
- 锅炉维修在线平台行业跨境出海战略研究报告
- 自行车越野赛(XC)行业深度调研及发展战略咨询报告
- 乡村茶艺体验月企业制定与实施新质生产力战略研究报告
- 艺术工坊体验活动行业深度调研及发展战略咨询报告
- 《2025深入探讨买卖合同的管辖问题》
- 艺术衍生品设计企业制定与实施新质生产力战略研究报告
- 数字孪生机场数据融合-全面剖析
- (二模)咸阳市2025年高考模拟检测(二)语文试卷(含答案)
- 《中央八项规定精神学习教育》专项讲座
- 2025年交管12123学法减分考试题库及答案
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 合成气生产甲醇工艺流程图
- T分布临界值表
- hs编码对照表.xls
- φ178旋转导向钻井工具设计说明书
- KIP3000故障代码
- 边坡排危土石方的施工组织设计
评论
0/150
提交评论