共用方式為


從 SQL Server 取得 XML 格式資料

Microsoft SQL Server 2000 推出能支援 XML 功能的資料擷取。若要讓您將 XML 資料流直接從 Microsoft SQL Server 2000 傳回,SQL Server .NET Framework 資料提供者的 SqlCommand 物件必須具備 ExecuteXmlReader 方法。ExecuteXmlReader 傳回 System.Xml.XmlReader 物件,內填有為 SqlCommand 指定的 SQL 陳述式結果。如需 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()
[C#]
SqlCommand custCMD = new SqlCommand("SELECT * FROM Customers FOR XML AUTO, ELEMENTS", nwindConn);

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

DataSet 也可用來將關聯式資料撰寫為 XML,也可與 XmlDataDocument 同步處理 (Synchronize),提供記憶體中單組資料的即時關聯式與階層式檢視。如需詳細資訊,請參閱從 DataAdapter 填入 DataSetXML 和 DataSet

如果您不需要使用 DataSet 表示記憶體內的關聯式檢視,則 ExecuteXmlReader 方法相當適合擷取 XML 資料,尤其當資料量大時。由於 ExecuteXmlReader 為資料流 (Streaming) API,所以它不需要擷取並快取所有的資料,就能將資料公開給呼叫者,就像使用 DataSet 將關聯式資料轉換為 XML 一樣。

關閉 XmlReader

XmlReader 物件使用完畢後,請務必呼叫 Close 方法。XmlReader 開啟期間,ConnectionXmlReader 所專用,因此您無法對 Connection 執行任何命令,包括建立其他 XmlReaderDataReader,而必須等到原始 XmlReader 關閉後才能進行。

請參閱

SqlCommand 類別 | XmlReader 類別 | 從 DataAdapter 填入 DataSet | XML 和 DataSet