gpt4 book ai didi

c# - SQL Server XML 数据类型在 .NET 中转换成什么?我如何将它转换成 XmlDocument?

转载 作者:IT王子 更新时间:2023-10-29 04:53:44 28 4
gpt4 key购买 nike

我们在数据库中有一个类型为 xml 的列。我正在通过 .net SqlDataReader 读取此信息,但我不确定将其转换为什么。

msdn 表 ( http://msdn.microsoft.com/en-us/library/cc716729.aspx ) 表明是 .net 类型 Xml,但是没有 System.Xml,只有 System.Web .UI.WebControls.Xml 所以我不确定这是否正确。

所以我的问题是:

当我从 SqlDataReader 读取它时,我将 SqlDbType.Xml 转换为什么,以及如何将其转换为 XmlDocument?

最佳答案

翻译成SqlXml你可以用 SqlXml.CreateReader 得到一个 XmlReader从中。你必须使用 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 的有用评论

这种方法的性能更好,并且在处理大型 XML 字段时可以好很多,因为 SqlReader.GetString 会先将字段内容加载到字符串中,同时SqlReader.GetSqlXml 直接从流中创建一个 XmlReader。通过查看 Reflector 或类似工具中的 System.Data 可以快速验证这一点。

关于c# - SQL Server XML 数据类型在 .NET 中转换成什么?我如何将它转换成 XmlDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13690991/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com