sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad oversættes SQL Server XML-datatypen til i .NET, og hvordan konverterer jeg den til XmlDocument?

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.



  1. MySQL:FEJL 1227 (42000):Adgang nægtet - Kan ikke OPRET BRUGER

  2. Sådan fungerer SPACE() i MariaDB

  3. Dårligt håndtryk eller ECONNRESET Azure Mysql Nodejs

  4. mysql date viser resultater i dag/i går/uge