Det oversættes til SqlXml
og du kan få en XmlReader
med SqlXml.CreateReader
fra det. Du skal bruge SqlDataReader.GetSqlXml
metode til at hente typen i stedet for en streng.
For eksempel:
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);
}
}
}
OPDATERING: For at besvare en nyttig kommentar fra @Wiktor Zychla
Ydeevnen af denne tilgang er bedre og kan være meget bedre, når du har at gøre med store XML-felter, fordi SqlReader.GetString
vil først indlæse feltindholdet i en streng, mens SqlReader.GetSqlXml
opretter en XmlReader fra strømmen direkte. Det kan hurtigt verificeres med et kig på System.Data i Reflector eller et lignende værktøj.