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

时间:2022-08-25 21:04: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)


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

请问如何解决,困扰好长时间了。内在4G,CPU g640

10 个解决方案

#1


该回复于2014-03-11 17:15:19被管理员删除

#2


顶一下,坐等高手。

#3


别沉了,顶起。

#4


最后顶一次的机会。

#5


数据太多了!

#6


引用 5 楼 linrachel 的回复:
数据太多了!

是数据太多了,但机器内存够大(win7 64位,8G),怎么也会出现这样的错误?

#7


我觉得是系统不能处理这么大的字符串吧。
兴许字符串超出4G了。

#8


结贴了。

引用 7 楼 vbfool 的回复:
我觉得是系统不能处理这么大的字符串吧。
兴许字符串超出4G了。

打开任务管理器,内存使用1G+,远远没有超过4G。

#9


你减少top的数量,如取10000条测试一下,另看错误出在哪个地方?

#10


问题解决了没呀,我这边也有这困扰。

#1


该回复于2014-03-11 17:15:19被管理员删除

#2


顶一下,坐等高手。

#3


别沉了,顶起。

#4


最后顶一次的机会。

#5


数据太多了!

#6


引用 5 楼 linrachel 的回复:
数据太多了!

是数据太多了,但机器内存够大(win7 64位,8G),怎么也会出现这样的错误?

#7


我觉得是系统不能处理这么大的字符串吧。
兴许字符串超出4G了。

#8


结贴了。

引用 7 楼 vbfool 的回复:
我觉得是系统不能处理这么大的字符串吧。
兴许字符串超出4G了。

打开任务管理器,内存使用1G+,远远没有超过4G。

#9


你减少top的数量,如取10000条测试一下,另看错误出在哪个地方?

#10


问题解决了没呀,我这边也有这困扰。