408
Chương 10: Cơ sở dữ liệu
sẽ trả về XML với cấu trúc như sau:
<Customers CustomerID="ALFKI" CompanyName="Alfreds Futterkiste"/>
<Customers CustomerID="ANTON" CompanyName="Antonio Moreno Taquería"/>
<Customers CustomerID="GOURL" CompanyName="Gourmet Lanchonetes"/>
§
Bạn có thể thêm từ khóa
ELEMENTS
vào cuối truy vấn để định dạng kết quả theo các phần tử
lồng nhau. Ví dụ, truy vấn sau đây:
SELECT CustomerID, CompanyName FROM Customers FOR XML AUTO, ELEMENTS
sẽ trả về XML với cấu trúc như sau:
<Customers>
<CustomerID>ALFKI</CustomerID>
<CompanyName>Alfreds Futterkiste</CompanyName>
</Customers>
<Customers>
<CustomerID>ANTON</CustomerID>
<CompanyName>Antonio Moreno Taquería</CompanyName>
</Customers>
<Customers>
<CustomerID>GOURL</CustomerID>
<CompanyName>Gourmet Lanchonetes</CompanyName>
</Customers>
§
Bạn cũng có thể định dạng kết quả một cách chi tiết hơn bằng cú pháp
FOR XML
EXPLICIT
. Ví dụ, cú pháp này cho phép bạn chuyển một vài trường (field) thành
đặc tính (attribute) và các trường khác thành phần tử (element). Bạn hãy tham
khảo một quyển sách chuyên về SQL Server để biết thêm chi tiết.
Ví dụ dưới đây trình bày cách lấy kết quả dạng XML bằng mệnh đề
FOR XML
và phương thức
ExecuteXmlReader
. Chú ý rằng, kết nối không thể được sử dụng cho bấy kỳ câu lệnh nào khác
trong khi
XmlReader
đang mở. Bạn nên xử lý kết quả càng nhanh càng tốt và phải luôn đóng
XmlReader
lại (Chương 5 có rất nhiều ví dụ trình bày cách sử dụng lớp
XmlReader
).
using System;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
public class XmlQueryExample {