none
mysql查询七十多万条数据内存溢出,求助。。。 RRS feed

  • 问题

  • 日志如下:

    System.OutOfMemoryException: 引发类型为“System.OutOfMemoryException”的异常。
       在 MySql.Data.Types.MySqlString.MySql.Data.Types.IMySqlValue.ReadValue(MySqlPacket packet, Int64 length, Boolean nullVal)
       在 MySql.Data.MySqlClient.NativeDriver.ReadColumnValue(Int32 index, MySqlField field, IMySqlValue valObject)
       在 MySql.Data.MySqlClient.Driver.ReadColumnValue(Int32 index, MySqlField field, IMySqlValue value)
       在 MySql.Data.MySqlClient.ResultSet.get_Item(Int32 index)
       在 MySql.Data.MySqlClient.MySqlDataReader.GetFieldValue(Int32 index, Boolean checkNull)
       在 MySql.Data.MySqlClient.MySqlDataReader.GetValue(Int32 i)
       在 MySql.Data.MySqlClient.MySqlDataReader.GetValues(Object[] values)
       在 System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values)
       在 System.Data.ProviderBase.SchemaMapping.LoadDataRow()
       在 System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
       在 System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
       在 System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
       在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)

    2017年8月24日 5:41

全部回复

  • 是数据库字段值导致的原因,比如int max=32768,但是数据库的值大于这个值,导致的OutOfMemoryException。

    考虑修改DataTable column的类型,int改成decimal或double.


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年8月25日 0:36
  • Hi,

    感谢你在MSDN论坛发帖。

    根据错误信息,这个是所分配的内存不够了,没有充足的内存来使用,

    你有尝试使用try catch 语句来抓取,哪段代码出现这个问题呢?

    如果你的问题已经被解决,请及时标记有用的回复作为答案。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年8月25日 7:25
    版主