Выйти из памяти с помощью dataSet.GetXml ()

2

У меня есть ошибка "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;
    }
  • 0
    Он добавляет ds.GetXml или конструктор StringReader?
Теги:
xpath

2 ответа

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

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

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

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

НТН

Ещё вопросы

Сообщество Overcoder
Наверх
Меню