CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

关于ADO.NET DataSet 多表关联查询.

楼主Kanderliu(卖男孩的小女孩)2005-04-15 15:53:01 在 .NET技术 / C# 提问

我在DataSet中有三张表,  
  table1(tb1_id,name,...)    
  table2(tb2_id,name,...)  
  table3(tb1_id,tb2_id)  
   
  要根据tb2_id查询出table1中关联的数据,(table2.name,table1.tb1_id,table1.name,.....)  
   
  应该怎么实现? 问题点数:100、回复次数:7Top

1 楼lfe()回复于 2005-04-15 16:07:14 得分 25

首先两个表要建立外键索引关系。  
  然后用DataRow.GetChildRows方法来获得相关数据Top

2 楼kv4000(ABCD(A Brave Csharp Developer))回复于 2005-04-15 16:18:25 得分 10

用join查询!和datarelation!Top

3 楼firejie(黑暗的左手)回复于 2005-04-15 16:20:55 得分 10

select   tb1_id,name   from   table1   where   tb1_id   in   (select   tb1_id   from   table3   where   tb2_id=@tb2_id)Top

4 楼wh8254(租个老婆结婚~~)回复于 2005-04-15 16:23:27 得分 5

怎么不在数据库中直接查询好,然后放在DataSet的一个DataTable中?Top

5 楼gyf19(秋天的云)回复于 2005-04-15 16:25:45 得分 35

1。建立两个   DataTable   对象之间的父/子关系  
    DataColumn   parentCol;  
          DataColumn   childCol;  
          parentCol   =   DataSet1.Tables["Customers"].Columns["CustID"];  
          childCol   =   DataSet1.Tables["Orders"].Columns["CustID"];  
          DataRelation   relCustOrder;  
          relCustOrder   =   new   DataRelation("CustomersOrders",   parentCol,   childCol);  
          DataSet1.Relations.Add(relCustOrder);  
  2。获得相关数据  
  private   void   GetChildRowsFromDataRelation(DataTable   myTable   )   {  
          DataRow[]   arrRows;      
          foreach(DataRelation   myRelation   in   myTable.ChildRelations){  
                foreach(DataRow   myRow   in   myTable.Rows){  
                      arrRows   =   myRow.GetChildRows(myRelation,   DataRowVersion.Proposed);  
                      //   Print   values   of   rows.  
                      for(int   i   =   0;   i   <   arrRows.Length;   i++){  
                            foreach(DataColumn   myColumn   in   myTable.Columns){  
                                  Console.WriteLine(arrRows[i][myColumn]);  
                            }  
                      }  
                }  
          }  
    }  
  Top

6 楼panda2fw2(我爱Monkey)回复于 2005-04-15 16:44:07 得分 5

wh8254(为了俺老婆,努力写程序)   说的没错啊,在sql里写好连接查询,直接填充到dataset里就可以了,多方便啊。Top

7 楼huangyj(天外飞仙的师傅)回复于 2005-06-12 21:57:00 得分 10

wh8254(为了俺老婆,努力写程序)   的方法不是面向对象的,  
  楼主需要的是面向对象的操作办法。Top

相关问题

  • 如何更新DataSet两个关联表?
  • 关于ADO.NET DataSet 多表关联查询.
  • 报表的数据与ADO控件的关联(我只有20分)
  • 表关联问题。
  • 多表关联update
  • Grid表的关联
  • 难倒了..不通过SQL重查,,dataset 两个表,有一关联字段,如何拼成一个大视图.
  • 用ADO连接数据库,如何在一个form里实现两个表的关联?
  • 在几个表关联的ADO记录集里可以用ADDNEW增加记录吗?
  • 多表关联的区别:

关键词

  • 数据
  • tb
  • datarelation
  • childcol
  • parentcol
  • relcustorder
  • 表
  • dataset
  • mytable
  • datarow

得分解答快速导航

  • 帖主:Kanderliu
  • lfe
  • kv4000
  • firejie
  • wh8254
  • gyf19
  • panda2fw2
  • huangyj

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo