2017-10-11 220 views
-1

从json格式的数据库获取数据并使用asp在web服务器上创建json文件时发生错误。净C#。我必须创建大约40万条SQL Server记录的json文件。在mscorlib.dll中发生类型'System.OutOfMemoryException'的异常,但未在用户代码中处理,同时创建json文件

错误显示行:

string jsondata = new JavaScriptSerializer().Serialize(stockdet); 

有一个在数据库表大约400 000条记录

型“的System.OutOfMemoryException”的异常出现在mscorlib.dll,但没有处理用户代码

+0

1)什么是异常的完整'ToString()'输出,包括异常类型,消息,追溯和内部异常(如果有的话)? 2)你能否[编辑]你的问题来澄清* 4 lacs记录*?也许这是一个错字? 3)有什么方法可以扩展你的问题来提供一个能够证明你的问题的[mcve]? – dbc

+0

我必须创建大约400000个SQL Server记录的json文件 – Shail

+0

也许[Json.NET](https://www.newtonsoft.com/json)可以处理400000条记录? – VDWWD

回答

1

这意味着当您尝试序列化400 000条记录时,您的内存不足以处理这个巨大的对象,所以我会建议采用这种做法

  1. 进入的NuGet包,并添加newtonsoft.json

  2. 添加以下引用

    using Newtonsoft.Json; 
    using System.IO; 
    
  3. 将下面的代码

    //replace {path} with your path 
    using (StreamWriter sw = new StreamWriter(@"{path}\temp.json")) 
         using (JsonWriter writer = new JsonTextWriter(sw)) 
         { 
          new JsonSerializer().Serialize(writer, stockdet); 
    
         } 
    
  4. 从文件读取序列化的对象位于{path}

+0

谢谢James,解决了我的问题。 – Shail

相关问题