【问题标题】:Get out of memory with dataSet.GetXml()使用 dataSet.GetXml() 耗尽内存
【发布时间】:2009-05-21 07:02:08
【问题描述】:

如果数据集太大并且内存足够,我会收到错误“System.OutOfMemoryException”。 文件“file1.xml”的大小约为 36 MB。

解决这个问题的方法是什么? 提前致谢。

private XPathDocument GetXML(DataSet ds)
    {
        ds.WriteXml("file1.xml");
        ds.WriteXmlSchema("file1.xsd");

        XPathDocument doc = new XPathDocument(new StringReader(ds.GetXml()));

        return doc;
    }

【问题讨论】:

  • 是丢ds.GetXml还是StringReader构造函数?

标签: c# xml xpath


【解决方案1】:

您可以尝试这种方法,它可能不那么敏感。

private XPathDocument GetXML(DataSet ds)
{
    ds.WriteXml("file1.xml");
    ds.WriteXmlSchema("file1.xsd");
    XmlDocument doc = new XmlDocument();
    doc.Load("file1.xml");

    return new XPathDocument(new XmlNodeReader(doc));
}

【讨论】:

    【解决方案2】:

    尝试使用 dataset.ReadXml("MyFilename");

    这对我有用。我能够在具有 4GB RAM 的机器上读取 250 MB 的文件。

    编辑:在具有更多 RAM 的机器上尝试。

    HTH

    【讨论】:

      猜你喜欢
      • 2013-07-22
      • 2013-07-13
      • 2021-02-24
      • 1970-01-01
      • 2015-08-23
      • 2012-11-10
      • 2012-08-19
      • 2011-02-09
      • 2015-10-01
      相关资源
      最近更新 更多