使用dataSet.GetXml()获取内存不足

时间:2009-05-21 07:02:09

标签: c# xml xpath

如果dataSet太大且内存足够,我会收到错误“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;
    }

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:-1)

尝试使用dataset.ReadXml(“MyFilename”);

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

编辑:尝试使用RAM更多的计算机。

HTH