Ini diterjemahkan menjadi SqlXml
dan Anda bisa mendapatkan XmlReader
dengan SqlXml.CreateReader
dari itu. Anda harus menggunakan SqlDataReader.GetSqlXml
metode untuk mendapatkan tipe alih-alih string.
Misalnya:
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
SqlXml xmlData =
reader.GetSqlXml(0);
XmlReader xmlReader = xmlData.CreateReader();
xmlReader.MoveToContent();
while (xmlReader.Read())
{
if (xmlReader.NodeType == XmlNodeType.Element)
{
string elementName = xmlReader.LocalName;
xmlReader.Read();
Console.WriteLine(elementName + ": " + xmlReader.Value);
}
}
}
PERBARUI: Untuk menjawab komentar bermanfaat dari @Wiktor Zychla
Kinerja pendekatan ini lebih baik dan bisa banyak lebih baik ketika berhadapan dengan bidang XML besar karena SqlReader.GetString
akan memuat konten bidang ke dalam string terlebih dahulu saat SqlReader.GetSqlXml
membuat XmlReader dari aliran secara langsung. Itu dapat dengan cepat diverifikasi dengan melihat System.Data di Reflector atau alat serupa.