用BinaryFormatter 序列化一个Dataset对象时,遇到Out Of Memory的错误,这个Dataset包含的数据表记录数小于1W行时
不报错,当大于1W行时,报这个错误。
我测试了下Dataset占用的内存是110M,但是机器的内存有3G,还有近2G空余内存。
请高手帮忙看看如何解决这个问题,多谢了!环境: Windows Server 2003,VS2005, .NET 2.0
测试代码:
...
TestChart.SqlClass sqlHelper = new TestChart.SqlClass();string strSql = "exec TestBigDataSetForC1Grid";DataSet dsview = sqlHelper.RunSql(strSql, "Master");object t = dsview as object;
if (t == null) throw new ArgumentNullException("obj");
MemoryStream resultStream = new MemoryStream();BinaryFormatter bf = new BinaryFormatter();bf.Serialize(resultStream, dsview); //报Out Of Memory的错误
不报错,当大于1W行时,报这个错误。
我测试了下Dataset占用的内存是110M,但是机器的内存有3G,还有近2G空余内存。
请高手帮忙看看如何解决这个问题,多谢了!环境: Windows Server 2003,VS2005, .NET 2.0
测试代码:
...
TestChart.SqlClass sqlHelper = new TestChart.SqlClass();string strSql = "exec TestBigDataSetForC1Grid";DataSet dsview = sqlHelper.RunSql(strSql, "Master");object t = dsview as object;
if (t == null) throw new ArgumentNullException("obj");
MemoryStream resultStream = new MemoryStream();BinaryFormatter bf = new BinaryFormatter();bf.Serialize(resultStream, dsview); //报Out Of Memory的错误
多占资源,你自己用DataSet的WriteXML方法保存xml文件,然后传到服务器,服务器再new个DataSet读取这个xml文件(ReadXML方法)不行吗?