我嘗試將數據從XML文件導入到SQL Server CE數據庫中。我使用ErikEJ SQL Server Compact Bulk Insert Library(來自NuGet)this library on codeplex。我創建數據庫和表。然後我將XML讀取到DataTable
並將此DataTable
導入到數據庫表中。將大型XML文件導入到SQL Server CE中
DataSet ds = new DataSet();
ds.ReadXml("myxml.xml");
DataTable table = new DataTable();
table = ds.Tables[0];
String connString = @"Data Source = test.sdf";
SqlCeBulkCopy bulkInsert = new SqlCeBulkCopy(connString);
bulkInsert.DestinationTableName = "testtable";
bulkInsert.WriteToServer(table);
它可以在一個小的XML,但是當我使用大型XML(更多然後1GB)我得到ReadXml
此錯誤:在mscorlib.dll
「的System.OutOfMemoryException」
如何解決這個問題?
更新:我知道這個錯誤,因爲我使用大的XML - 問題是如何優化這個算法,mayby使用緩衝區或部分讀取xml,任何想法?
可能重複[當仍然有足夠的內存免費「System.OutOfMemoryException的」被拋出(HTTP:/ /stackoverflow.com/questions/1153702/system-outofmemoryexception-was-thrown-when-there-is-still-plenty-of-memory-fr) – 2015-04-03 06:48:04