VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 622|回复: 3

DataSet通过web service返回xml,两个table能不能嵌套?

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-18 19:00:01 | 显示全部楼层 |阅读模式
如下代码所示:
------------------------------
//该web service的方法返回一个XmlDataDocument对象
public XmlDataDocument TDBinding(string strHostcustid/*用户输入客户号*/)
{
DataSet ds  = new DataSet();
XmlDataDocument xd;
DataColumn parentCol;
DataColumn childCol;
//通过ODBC访问数据库的两个表,一个是主表,一个是明细表
OdbcConnection con = new OdbcConnection("DSN=137");
OdbcDataAdapter daCust = new OdbcDataAdapter("select * from PData1.T01_PARTY where Host_Cust_Id='"+strHostcustid + "'",con);
OdbcDataAdapter daEvnt = new OdbcDataAdapter("select * from PData1.t05_financial_event_hm where Host_Cust_Id='"+strHostcustid + "'",con);
//查询后将两个结果集放入到dataset中,并返回
daCust.Fill(ds,"Customer");
daEvnt.Fill(ds,"Event");
xd = new XmlDataDocument(ds);
return xd;
}
这个方法返回的xml格式如下:
<NewDataSet>
<Customer>
......
</Customer>
<Event>
......
</Event>
<Event>
......
</Event>
<Event>
......
</Event>
</NewDataSet>
因为一个Customer会有多个event,这样看起来很长,我希望上面的xml能不能调整成如下格式,就是把event这个结果集再向里缩进一层:
<NewDataSet>
<Customer>
......
</Customer>
<CustomerEvent>
<Event>
......
</Event>
<Event>
......
</Event>
</CustomerEvent>
</NewDataSet>

谢谢。
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-7-25 11:00:01 | 显示全部楼层
DataCollumn [] parent = new DataCollumn[1];
DataCollumn [] child  = new DataCollumn[1];
parent[0] = ds.Tables("Customer").Columns("Host_Cust_Id")
child[1]  = ds.Tables("Event").Columns("Host_Cust_Id")

// Create DataRelation.
DataRelation CustEventRel= New DataRelation("CustomersEvent", parentCols, childCols, true)
// set the event as the child element of the parent Customer
CustEventRel.Nested = true;
// Add the relation to the DataSet.
ds.Relations.Add(CustEventRel);
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-7-25 11:30:01 | 显示全部楼层
不好意思有些错误
DataCollumn [] parent = new DataCollumn[1];
DataCollumn [] child  = new DataCollumn[1];
parent[0] = ds.Tables("Customer").Columns("Host_Cust_Id");
child[0]  = ds.Tables("Event").Columns("Host_Cust_Id");

// Create DataRelation.
DataRelation CustEventRel= New DataRelation("CustomersEvent", parent, child, true)
// set the event as the child element of the parent Customer
CustEventRel.Nested = true;
// Add the relation to the DataSet.
ds.Relations.Add(CustEventRel);
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-7-25 12:00:01 | 显示全部楼层

// Create DataRelation.
DataRelation CustEventRel= New DataRelation("CustomersEvent",
ds.Tables["Customer"].Collumns["Host_Cust_Id"],
ds.Tables["Event"].Collumns["Host_Cust_Id"],
true);
// set the event as the child element of the parent Customer
CustEventRel.Nested = true;
// Add the relation to the DataSet.
ds.Relations.Add(CustEventRel);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表