C# WriteNode()不为任何元素写入标记

C# WriteNode()不为任何元素写入标记,c#,sql-server,xml,C#,Sql Server,Xml,我正在编写一个C.NET程序,试图编写XML数据 从SQL Server返回,由XmlReader访问 由SqlCommand.ExecuteXmlReader方法返回 SqlCommand查询文本为SELECT。。。对于XML,元素 代码将XML数据从XmlReader复制到XmlWriter, 通过使用XmlWriter.WriteNode方法 但是XmlWriter.WriteNode不为任何元素写入开始标记和结束标记; 它只写入元素的文本内容 显然,我的意图是为元素编写标记和文本。 我已

我正在编写一个C.NET程序,试图编写XML数据

从SQL Server返回,由XmlReader访问

由SqlCommand.ExecuteXmlReader方法返回

SqlCommand查询文本为SELECT。。。对于XML,元素

代码将XML数据从XmlReader复制到XmlWriter, 通过使用XmlWriter.WriteNode方法

但是XmlWriter.WriteNode不为任何元素写入开始标记和结束标记; 它只写入元素的文本内容

显然,我的意图是为元素编写标记和文本。 我已经包含了selectquery和WriteNode方法的代码和输出。 下面

有人解释过为什么XmlWriter.WriteNode不写标记吗 并且只写文本数据

C:

SQL Server Management Studio中返回的结果集:

<Contact>
  <ContactID>1</ContactID>
  <Title>Mr.</Title>
  <FirstName>Gustavo</FirstName>
  <LastName>Achong</LastName>
  <EmailAddress>gustavo0@adventure-works.com</EmailAddress>
  <Phone>398-555-0132</Phone>
</Contact>
.aspx输出:


1 Gustavo Achong先生gustavo0@adventure-works.com 398-555-0132

尝试不以SQL XML实体的形式返回XML,而是在数据集中以字符串的形式返回,然后打印字符串,这样CDATA就不会被剥离

<Contact>
  <ContactID>1</ContactID>
  <Title>Mr.</Title>
  <FirstName>Gustavo</FirstName>
  <LastName>Achong</LastName>
  <EmailAddress>gustavo0@adventure-works.com</EmailAddress>
  <Phone>398-555-0132</Phone>
</Contact>