sql >> データベース >  >> RDS >> Sqlserver

SQL Server XML データ型は .NET で何に変換されますか?また、それを XmlDocument に変換するにはどうすればよいですか?

    SqlXml に変換されます XmlReader を取得できます SqlXml.CreateReader それから。 SqlDataReader.GetSqlXml 文字列の代わりに型を取得するメソッド。

    例:

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

    更新: @Wiktor Zychla からの有益なコメントに答えるには

    このアプローチのパフォーマンスはより優れており、大幅になる可能性があります SqlReader.GetString であるため、大きな XML フィールドを処理する場合に適しています。 SqlReader.GetSqlXml 中にフィールドの内容を最初に文字列にロードします ストリームから直接 XmlReader を作成します。これは、Reflector または同様のツールで System.Data を調べることですぐに確認できます。



    1. rand()によるmysqlの順序パフォーマンスの問題と解決策

    2. Postgres-pggemの最後のバージョン0.14.0でエラーが発生する

    3. 年齢を計算するためのMySQLの日付の違い

    4. 非常に大きなテーブルでの(列ストア)圧縮の楽しみ–パート1