从SQL查询c#创建树/ XML结构

时间:2012-10-15 15:22:18

标签: c# xml

这是我目前的问题。我需要显示一个树状结构,显示召回名单。我们的DBA创建了一个存储过程,返回[level],[name],[contact_info]。

示例如下:

[1] [test name1] [contact info]
[2] [sub to1] [contact info]
[3] [sub to2] [contact info]
[4] [sub to3] [contact info]
[3] [sub to2] [contact info]
[2] [sub to1] [contact info]

等...

它按层次结构的顺序排序

我还没有真正使用过XML,但这是加载/呈现这些数据的方法。目前,当我检索数据时,我将其返回到数据表中。可能还需要将此数据导出到Excel。

有人能指出一个好的方向吗?

1 个答案:

答案 0 :(得分:0)

1)不要相信任何无法建立和操纵的数据结果顺序。从存储过程检索数据的“标准”方式是数据引导器,数据表或数据集。您甚至可以使用Entity Framework来封装数据。它们都不能确保保留订单。假设您订购的结果集风险太大。

2)让您的DBA在结果中包含层次结构信息(例如,带有父记录密钥的字段)

3)递归适用于层次结构问题。设计算法以从xml节点和一堆顶级记录开始。对于每条记录:添加一个新的xmlnode并进行递归调用,传递刚刚添加的记录的子项。

4)如果预期结果很小(比方说,几百条记录),您可以获取所有数据,将其存储在数据表中,并使用Filter属性搜索特定记录。如果预期结果是几千条记录,请让DBA创建一个存储过程来读取一条记录的子节点,并为xml节点中的每条记录调用此类过程。确保数据中没有循环:)