SQL Server 2000 中的 XML 数据 (ADO.NET)

更新:November 2007

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

Dim command As SqlCommand = New SqlCommand( _
  "SELECT * FROM Customers FOR XML AUTO, ELEMENTS", connection)

Dim reader As System.Xml.XmlReader = command.ExecuteXmlReader()
SqlCommand command = new SqlCommand(
  "SELECT * FROM Customers FOR XML AUTO, ELEMENTS", connection);

System.Xml.XmlReader reader = command.ExecuteXmlReader();

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

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

关闭 XmlReader

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

请参见

概念

SQL Server 中的 XML 数据 (ADO.NET)