【问题标题】:XML Serializer skipping over rowsXML 序列化程序跳过行
【发布时间】:2011-05-09 13:51:56
【问题描述】:

我有一个从数据库中读取记录并将其导出到 xml 文件的应用程序。有一个 xsd 可以绘制出 xml 文件的架构。我正在使用 xsd 代理类将数据序列化为 xml 文件。

这就是我将数据序列化为 xml 的方式:

XmlSerializer serializer = new XmlSerializer(_report.GetType());
StringBuilder xmlString = new StringBuilder();
StringWriter writer = new StringWriter(xmlString);
serializer.Serialize(writer, _report);
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString.ToString());
doc.Save(_outputFile.FullName);

我遇到的问题是输出文件中缺少行。我进行了调试,发现数据被添加到数据库中的代理对象集合中,并通过“_report”对象传递给序列化程序。

因此,为了隔离数据或应用程序的问题,我将一些丢失的记录手动编码到一个 csv 文件中,并将数据导入到我的应用程序中。这些记录现在出现在 xml 文件中。所以,现在我知道这是一个数据问题。该应用程序使用informix 数据库作为后端。

我不明白的是,为什么informix 数据库中同一表中的某些行存在而其他行不存在?我花了将近 2-3 天的时间在互联网上四处寻找,但没有任何成功。所以,我想是时候把它提高一个档次了。

【问题讨论】:

  • 你能和我们分享一下xsd吗?我猜问题出在哪里。另外,您是如何生成“代理对象”_report 的?是通过 XSD.EXE 还是其他方法? xsd 实际上是一个数据集吗?

标签: c# xml-serialization informix


【解决方案1】:

我在 2 天前遇到了类似的问题。

尝试添加

 writer.Flush();

打电话之前

 xmlString.ToString());

这就是解决my problem的解决方案。

【讨论】:

  • 感谢您的指点。我在第 5 行和第 6 行之间插入了“writer.Flush()”,但没有成功。
猜你喜欢
  • 2012-03-09
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-01
相关资源
最近更新 更多