【发布时间】:2009-07-28 18:54:05
【问题描述】:
当使用 ds.GetXml 将类型化 DataSet 写入 XML 时,具有空值的列将从 XML 中删除。我知道这是因为未写入架构等,但是有没有办法覆盖它而无需在写入 XML 之前解析 DataSet 并将所有数据库空值转换为空字符串?
编辑:附加信息:
1) 我的主要任务是获取 DataSet 并将其流式传输到 WebRequest。所以我正在创建一个 XML 文档
Dim xmldoc As New Xml.XmlDocument()
xmldoc.LoadXml(dsUpload.GetXml)
然后像这样在 HTTpWebRequest(req) 上上传 xmldoc
Using xw As XmlTextWriter =
New XmlTextWriter(req.GetRequestStream, System.Text.Encoding.Default)
xw.Formatting = Formatting.Indented
xmldoc.WriteTo(xw)
xw.Close()
End Using
2) 我说的是 DBNull
3) 我需要显示这些列,因为我要上传到的网站需要包含所有标签,以便他们可以解析它(必须是旧系统)
编辑
1)我同意代码效率不高,但我没有提到的是上传方法是另一个类中的通用方法。因此它接受 XMLDoc,因为同样的方法将数据集上传为 xml 和硬编码的 XML 字符串
2) 是的,同意只有 System.String 可以转换为 String.Empty。这主要是我的数据集所具有的。
3) LOL 关于遗留系统的评论。这是更荒谬的东西。我认为他们可能会像解析逗号分隔文件一样解析 XML。只要数据中有逗号,它就会抛出它! :)
【问题讨论】:
-
您使用的是什么版本的 .NET?
标签: .net xml xml-serialization dataset