2009-05-21 9 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コンストラクタがスローされていますか? –

答えて

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を持つマシン上で250MBのファイルを読むことができました。

編集:RAMが多いマシンで試してください。

HTH

関連する問題