Chinaunix首页 | 论坛 | 博客
  • 博客访问: 570188
  • 博文数量: 155
  • 博客积分: 4015
  • 博客等级: 上校
  • 技术积分: 1625
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-18 16:55
文章分类

全部博文(155)

文章存档

2009年(20)

2008年(39)

2007年(66)

2006年(29)

2005年(1)

我的朋友

分类: C/C++

2006-10-19 12:47:21

   今天用C#写一个用oleDB连接数据库的例子,其中有新建一个Relation。
DataRelation CusOrdRel = new DataRelation("CusOrds",
    NwDataSet.Tables["Customers"].Columns["CustomerID"],
    NwDataSet.Tables["Orders"].Columns["CustomerID"]);
 
   之后将关系图Print出来:

   //Print out nested customers and their orders ids
   foreach(DataRow CusRow in NwDataSet.Tables["Customers"].Rows)
   {
    Console.WriteLine("CustomerID: "+CusRow["CustomerID"]+"CompanyName: "+CusRow["CompanyName"]);
    foreach(DataRow OrdRow in CusRow.GetChildRows(CusOrdRel))
    {
     Console.WriteLine("\t OrderID:",OrdRow["OrderID"]);
    }
   }
 
在我运行程序的时候报错:
该行不属于与此关系相同的数据集。
 
 
奇怪,我已建立Customers table的CustomerID和Orders table的CustomerID之间的关系,
为什么,在用CusRow.GetChildRows(CusOrdRel)的时候,却显示:
该行不属于与此关系相同的数据集
最的查询的MicroSoft的网站,找到了问题所在。
 
在建立DataSet的Relation后,要将该Relation写回DataSet。
在建立Relation后添加以下语句,将Relation写回DataSet:
   NwDataSet.Relations.Add(CusOrdRel);
剩下再用CusRow.GetChildRows就可以将子Columns显示出来了。
 
 
 
Jerry_Chow
06/10/19
 
阅读(1701) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~