Microsoft SQL Server 2000 引入了在检索数据时对 XML
功能的支持。为了使您能够直接从 Microsoft SQL Server 2000
中返回 XML 流,SQL Server .NET 数据提供程序 SqlCommand
对象具有 ExecuteXmlReader 方法。ExecuteXmlReader
返回已填充了为 SqlCommand 指定的 SQL 语句的结果的 System.Xml.XmlReader
对象。有关 XmlReader 的更多信息,请参阅
[Visual Basic]
Dim custCMD As SqlCommand = New SqlCommand("SELECT * FROM Customers
FOR XML AUTO, ELEMENTS", nwindConn)
Dim myXR As System.Xml.XmlReader = custCMD.ExecuteXmlReader()
[C#]
SqlCommand custCMD = new SqlCommand("SELECT * FROM Customers FOR XML
AUTO, ELEMENTS", nwindConn);
System.Xml.XmlReader myXR = custCMD.ExecuteXmlReader();
DataSet 也可用于以 XML 形式编写关系数据,并且可以与 XmlDataDocument 同步,以提供内存中单个数据集的实时关系及分层视图。有关更多信息,请参阅从 DataAdapter 填充 DataSet 和 XML 和 DataSet。
如果不需要使用 DataSet 提供数据的内存中关系视图,则 ExecuteXmlReader 方法相当适用于检索 XML 数据,尤其是大量的数据。由于 ExecuteXmlReader 是流式 API,它不必在向调用方公开数据之前检索和缓存所有数据(如果已使用 DataSet 将关系数据转换为 XML,情况也是如此)。
关闭 XmlReader
每次使用完 XmlReader 对象后都应调用 Close 方法。当 XmlReader 打开时,该 XmlReader 将以独占方式使用 Connection。在初始 XmlReader 关闭之前,将无法对 Connection 执行任何命令(包括创建另一个 XmlReader 或 DataReader)。