当我遇到发生在下面的代码坏内存泄漏内存泄漏发生异常。蚂蚁报告这是因为IDataReader指向的行没有被GC收集。但是,当我注释掉下面的行时,没有泄漏,这是我将问题隔离到这个代码的问题。执行SqlBulkCopy的
bulkCopy.WriteToServer(reader);
有没有人有关如何防止内存泄漏的建议?
预先感谢您。
长途区号:
var reader = datatable.CreateDataReader();
BulkInsert(tablename, reader, connectionString);
reader.Dispose();
datatable.Dispose();
调用此代码的代码是否处置了'IDataReader'? – cjk
可能是后期绑定的问题 - 这就是为什么评论该行仍然有效 - 好思维!我会仔细检查读者是否正确处理。 – Totero
你传递了什么样的数据传递者?从理论上讲,数据读取器一次只能保存一行(直到你调用MoveNext),并且SqlBulkCopy当然应该正确处理它们。 – Andomar