当前位置: 代码迷 >> VB Dotnet >> 解决一下序列化datatable时引发的system.outofmemoryexception的错误
  详细解决方案

解决一下序列化datatable时引发的system.outofmemoryexception的错误

热度:415   发布时间:2016-04-25 02:22:31.0
请求帮助解决一下序列化datatable时引发的system.outofmemoryexception的异常!
本帖最后由 pengwei0417 于 2014-03-11 16:54:27 编辑
代码如下:
 
Dim n As Date = Now
table2 = dh.BackTable("select top 50000 * from 数据表1", DataType.AccessData) '这个函数是从自定义的类中提取数据,无问题
Debug.WriteLine("提取数据所需时间:" & (Now - n).Seconds)
n = Now
Dim fs As New FileStream(AppDomain.CurrentDomain.BaseDirectory & "\aa.aaa", FileMode.OpenOrCreate, FileAccess.ReadWrite)
Dim fr As New BinaryFormatter
fr.Serialize(fs, table2)  '在这里提示system.outofmemoryexception的异常!
fs.Close()
Debug.WriteLine("序列化10万条数据所用时间:" & (Now - n).Seconds)
n = Now
fs = New FileStream(AppDomain.CurrentDomain.BaseDirectory & "\aa.aaa", FileMode.OpenOrCreate, FileAccess.Read)
table1 = CType(fr.Deserialize(fs), DataTable)
Debug.WriteLine("反序列化所需时间:" & (Now - n).Seconds)


提示如下:


请问如何解决,困扰好长时间了。内在4G,CPU g640
------解决方案--------------------
数据太多了!
------解决方案--------------------
我觉得是系统不能处理这么大的字符串吧。
兴许字符串超出4G了。
------解决方案--------------------
你减少top的数量,如取10000条测试一下,另看错误出在哪个地方?
  相关解决方案