Выйти из памяти с помощью dataSet.GetXml () - PullRequest
3 голосов
/ 21 мая 2009

У меня ошибка «System.OutOfMemoryException», если dataSet слишком велик и памяти достаточно. Размер файла "file1.xml" составляет около 36 МБ.

Как решить эту проблему? Заранее спасибо.

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

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

        return doc;
    }

Ответы [ 2 ]

2 голосов
/ 21 мая 2009

Вы можете попробовать этот подход, он может быть немного менее чувствительным.

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));
}
0 голосов
/ 25 мая 2009

Попробуйте использовать dataset.ReadXml ("MyFilename");

Это сработало для меня. Я смог прочитать файл на 250 МБ на машине с 4 ГБ ОЗУ.

Изменить: Попробуйте на машине, которая имеет больше оперативной памяти.

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...