sql >> Databáze >  >> RDS >> Sqlserver

Co překládá datový typ SQL Server XML do .NET a jak jej převedu na XmlDocument?

Překládá se do SqlXml a můžete získat XmlReader s SqlXml.CreateReader z toho. Budete muset použít SqlDataReader.GetSqlXml metoda k získání typu místo řetězce.

Například:

        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);
                }
            }
        }

AKTUALIZACE: Chcete-li odpovědět na užitečný komentář od @Wiktor Zychla

Výkon tohoto přístupu je lepší a může být hodně lepší při práci s velkými poli XML, protože SqlReader.GetString načte obsah pole nejprve do řetězce, zatímco SqlReader.GetSqlXml vytvoří XmlReader přímo ze streamu. To lze rychle ověřit pohledem na System.Data v Reflectoru nebo podobném nástroji.



  1. Chyba MySQL č. 1005 (kód 150)

  2. Spusťte sledování změn v databázi MySQL

  3. Oracle 11g SQL pro získání jedinečných hodnot v jednom sloupci vícesloupcového dotazu

  4. Jak získat přístup k pohledům db pomocí modelů Laravel?