【问题标题】:I need to write a dataset as XML data我需要将数据集编写为 XML 数据
【发布时间】:2011-05-05 20:46:02
【问题描述】:

我需要从以下数据集中生成以下 xml 输出。我附上了数据集和 xml 输出示例。我将把 C# 代码放在 SSIS 脚本任务中。你们能帮我用 C# 编写代码吗?我是一名数据库专家,但我真的不知道这个 XML 如何与数据集一起使用。如果你能帮忙,我真的很感激。提前致谢。

AGENTID STARTDAY    STARTMONTH  STARTYEAR   STARTHOUR   STARTMINUTE ENDHOUR ENDMINUTE   EXCEPTION
910180  5   5   2011    10  30  11  0   OPEN
910180  5   5   2011    11  0   11  30  OPEN
910180  5   5   2011    11  30  12  0   OPEN
910180  6   5   2011    17  30  18  0   OPEN
910180  7   5   2011    18  0   18  30  OPEN
911568  6   5   2011    16  30  17  0   OPEN
911568  6   5   2011    19  0   19  30  OPEN
911568  6   5   2011    19  30  20  0   OPEN
911568  6   5   2011    20  0   20  30  OPEN
911568  6   5   2011    20  30  21  0   OPEN
911568  6   5   2011    21  0   21  30  OPEN
911568  6   5   2011    22  0   22  30  OPEN
911568  7   5   2011    10  30  11  0   OPEN
911568  7   5   2011    11  0   11  30  OPEN

 

<?xml version="1.0" encoding="ISO-8859-1" ?>
<agentScheduleList>
    <agent>
        <id>470185</id>
        <schedule>
            <day>12</day>
            <month>8</month>
            <year>2002</year>
            <exception>
                <startdate>
                    <day>12</day>
                    <month>8</month>
                    <year>2002</year>
                </startdate>
                <starttime>
                    <hour>22</hour>
                    <min>0</min>
                </starttime>
                <endtime>
                    <hour>2</hour>
                    <min>0</min>
                </endtime>
                <code>Open</code>
            </exception>
            <exception>
                <startdate>
                    <day>13</day>
                    <month>8</month>
                    <year>2002</year>
                </startdate>
                <starttime>
                    <hour>2</hour>
                    <min>0</min>
                </starttime>
                <endtime>
                    <hour>3</hour>
                    <min>0</min>
                </endtime>
                <code>Lunch</code>
            </exception>
            <exception>
                <startdate>
                    <day>13</day>
                    <month>8</month>
                    <year>2002</year>
                </startdate>
                <starttime>
                    <hour>3</hour>
                    <min>0</min>
                </starttime>
                <endtime>
                    <hour>7</hour>
                    <min>0</min>
                </endtime>
                <code>Open</code>
            </exception>
        </schedule>
    </agent>
    <agent>
        <id>470185</id>
        <schedule>
            <day>13</day>
            <month>8</month>
            <year>2002</year>
            <offexception/>
        </schedule>
    </agent>
</agentScheduleList>

【问题讨论】:

  • 我已附上数据集和 xml 输出示例。
  • 由于您的 xml 值与您的数据集不匹配,人们可能会发现很难为 xml 代码创建适当的数据集。

标签: c# sql xml ssis dataset


【解决方案1】:

DataSet 类有一个WriteXml 函数可以将您的数据写入文件,或者GetXml 可以将其作为字符串返回。如果您的 XML 结构与数据库结构不同,The documentation on MSDN 进一步解释了自定义输出以使其完全匹配您的需要。

【讨论】:

  • 我使用 XmlSerialize/Deserialize。我没有意识到有一个 Write/GetXml。很高兴知道...
【解决方案2】:

我认为你可以使用:

string xml = yourDataSet.GetXml();

您可以使用DataSet 方法ReadXml 将其读回DataSet

您还可以使用以下方法获取XmlDataDocument

System.Xml.XmlDataDocument xmlDoc = new System.Xml.XmlDataDocument(yourDataSet);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2011-10-03
    相关资源
    最近更新 更多