2009-05-21 112 views
2

如果dataSet太大,內存不夠,我得到錯誤「System.OutOfMemoryException」。 文件「file1.xml」的大小約爲36 MB。用dataSet.GetXml解決內存不足()

解決這個問題的方法是什麼? 在此先感謝。

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構造函數嗎? – 2014-03-19 14:47:46

回答

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

這對我有效。我能夠在具有4GB RAM的計算機上讀取250 MB的文件。

編輯:嘗試在有更多RAM的機器上。

HTH