c#中怎样把表与表之间建立关系.

csharp_chenhl 2006-11-05 10:21:13
前提;(表)product,product_pack [product(以product_no,client_c两个字段为外键关系]
我在导出xml时.
我想实现的效果是.选择列表中的多个记录.
再导出,导出的结果是.先主表,再从表,主表,从表..依次这样.......
如:
<product>
<product_id>1</product_id>
<product_name>1</product_pack>
</product>
<product_pack>
<product_no>1</product_no>
<client_c>1</client_c>
</product>
.
.
.
<product>
<product_id>1</product_id>
<product_name>1</product_pack>
</product>
<product_pack>
<product_no>1</product_no>
<client_c>1</client_c>
</product>
现在的.结果是.把所有product的记录,再所有的product_pack.
...全文
184 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
blackant2 2006-11-05
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Collections.Generic;

public class MyClass
{
public static void Main()
{
//建立示例表
DataSet ds=CreateDataSet();
//建立主从表关系
ds.Relations.Add(
new DataColumn[]{ds.Tables[0].Columns[2],
ds.Tables[0].Columns[3]},
new DataColumn[]{ds.Tables[1].Columns[0],
ds.Tables[1].Columns[1]}
);
//依关联关系分类
ds.Relations[0].Nested=true;
//输出到xml文件
ds.WriteXml(@"C:\Documents and Settings\Administrator\My Documents\md.xml");
Console.Read();
}

static DataSet CreateDataSet(){
//主表
DataTable master=new DataTable("product");
master.Columns.Add(new DataColumn("product_id",typeof(int)));
master.Columns.Add(new DataColumn("product_name",typeof(int)));
master.Columns.Add(new DataColumn("product_no",typeof(int)));
master.Columns.Add(new DataColumn("client_c",typeof(int)));
//从表
DataTable detail=new DataTable("product_pack ");
detail.Columns.Add(new DataColumn("product_no",typeof(int)));
detail.Columns.Add(new DataColumn("client_c",typeof(int)));
for(int i=0;i<10;i++){
DataRow DRmaster=master.NewRow();
DRmaster[0]=i;
DRmaster[1]=i;
DRmaster[2]=i;
DRmaster[3]=i;
master.Rows.Add(DRmaster);
for(int j=0;j<3;j++){
DataRow DRdetail=detail.NewRow();
DRdetail[0]=i;
DRdetail[1]=i;
detail.Rows.Add(DRdetail);
}
}
//返回数据集
DataSet ds=new DataSet();
ds.Tables.Add(master);
ds.Tables.Add(detail);
return ds;

}
}
tianzhenjing 2006-11-05
  • 打赏
  • 举报
回复
双循环就可以了

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧