请求帮助解决一下序列化datatable时引发的system.outofmemoryexception的异常!

大刘0417 2014-03-11 04:52:51
代码如下:
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
...全文
538 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huaichao569 2014-09-01
  • 打赏
  • 举报
回复
问题解决了没呀,我这边也有这困扰。
wind_cloud2011 2014-03-16
  • 打赏
  • 举报
回复
你减少top的数量,如取10000条测试一下,另看错误出在哪个地方?
大刘0417 2014-03-15
  • 打赏
  • 举报
回复
结贴了。
引用 7 楼 vbfool 的回复:
我觉得是系统不能处理这么大的字符串吧。 兴许字符串超出4G了。
打开任务管理器,内存使用1G+,远远没有超过4G。
vbfool 2014-03-15
  • 打赏
  • 举报
回复
我觉得是系统不能处理这么大的字符串吧。 兴许字符串超出4G了。
大刘0417 2014-03-13
  • 打赏
  • 举报
回复
引用 5 楼 linrachel 的回复:
数据太多了!
是数据太多了,但机器内存够大(win7 64位,8G),怎么也会出现这样的错误?
大刘0417 2014-03-12
  • 打赏
  • 举报
回复
别沉了,顶起。
linrachel 2014-03-12
  • 打赏
  • 举报
回复
数据太多了!
大刘0417 2014-03-12
  • 打赏
  • 举报
回复
最后顶一次的机会。
大刘0417 2014-03-11
  • 打赏
  • 举报
回复
顶一下,坐等高手。

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧