Microsoft SQL Server 2000 引入了在检索数据时对 XML 功能的支持。为了使您能够直接从 Microsoft SQL Server 2000 中返回 XML 流,SQL Server .NET 数据提供程序 SqlCommand 对象具有 ExecuteXmlReader 方法。ExecuteXmlReader 返回已填充了为 SqlCommand 指定的 SQL 语句的结果的 System.Xml.XmlReader 对象。有关 XmlReader 的更多信息,请参阅 XmlReader类 ExecuteXmlReader 只能用于以 XML 数据形式返回结果的语句,例如包含 SQL Server 2000 FOR XML 子句的语句,如以下示例所示。

Dim custCMD As SqlCommand = New SqlCommand("SELECT * FROM Customers FOR XML AUTO, ELEMENTS", nwindConn)

Dim myXR As System.Xml.XmlReader = custCMD.ExecuteXmlReader()

SqlCommand custCMD = new SqlCommand("SELECT * FROM Customers FOR XML AUTO, ELEMENTS", nwindConn);

System.Xml.XmlReader myXR = custCMD.ExecuteXmlReader();

DataSet 也可用于以 XML 形式编写关系数据,并且可以与 XmlDataDocument 同步,以提供内存中单个数据集的实时关系及分层视图。有关更多信息,请参阅从 DataAdapter 填充 DataSetXML 和 DataSet

如果不需要使用 DataSet 提供数据的内存中关系视图,则 ExecuteXmlReader 方法相当适用于检索 XML 数据,尤其是大量的数据。由于 ExecuteXmlReader 是流式 API,它不必在向调用方公开数据之前检索和缓存所有数据(如果已使用 DataSet 将关系数据转换为 XML,情况也是如此)。

关闭 XmlReader

每次使用完 XmlReader 对象后都应调用 Close 方法。当 XmlReader 打开时,该 XmlReader 将以独占方式使用 Connection。在初始 XmlReader 关闭之前,将无法对 Connection 执行任何命令(包括创建另一个 XmlReaderDataReader)。

表示提供对 XML 数据进行快速、非缓存、只进访问的读取器。

有关此类型所有成员的列表, XmlReader 成员

System.Object
   System.Xml.XmlReader
      System.Xml.XmlNodeReader
      System.Xml.XmlTextReader
      System.Xml.XmlValidatingReader

MustInherit Public Class XmlReader

public abstract class XmlReader

public __gc __abstract class XmlReader

public abstract class XmlReader

线程安全

此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。

备注

XmlReader 提供对 XML 数据流的只进只读访问。当前节点指读取器定位在的节点。使用任何读方法推进读取器并且属性反映当前节点的值。

XmlReader 符合 W3C 可扩展标记语言 (XML) 1.0 和 XML 中命名空间的建议,它是在下面的类中实现的:

说明
XmlTextReader 最快的 XmlReader 实现。它检查 XML 格式是否正确,但不支持数据验证。该读取器不能展开常规实体,不支持默认属性。
XmlValidatingReader 可以使用 DTD 或架构验证数据的 XmlReader 的实现。该读取器还可以展开常规实体并支持默认属性。
XmlNodeReader 从 XmlNode 读取 XML 数据的 XmlReader 的实现。

若要读取强类型数据,请使用 XmlConvert 类。例如,下面的 C# 代码读入数据并将其从 String 转换为 Double

Double price = XmlConvert.ToDouble(reader.Value);

XmlReader 在发生 XML 分析错误时引发 XmlException。引发异常后,读取器的状态不可预知。例如,报告的节点类型可能不同于当前节点的实际节点类型。

有关 XmlReader 类的进一步论述,请参阅 用 XmlReader 读取 XML

要求

命名空间: System.Xml

平台: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows .NET Server family

程序集: System.Xml (在 System.Xml.dll 中)