我有一个用vb.net编写的应用程序,用户可以在其中导出文件。对于此特定文件,我有以下代码 -
Private Sub lnkExcelTier2Tier1LinkGet_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkExcelTier2Tier1LinkGet.Click
Dim dt As Data.DataTable
Dim reportName As String = Me.lblReportTitleTier1Tier2.Text.Trim()
Try
'Grabbing my stored procuder that will be used to get the data
Dim D As OOBusinessLayer.Common.Dynamic = New OOBusinessLayer.Common.Dynamic("GeneralReporting", "Tier2Tier1LinkGet")
'Populate table with data
dt = D.Get()
'Export data table to excel
ExportReportVIASuperGrid(dt, reportName, "XLSX")
在导出函数上,我继续收到System.OutOfMemoryException错误。当做一个步骤虽然填充数据发生得非常快,但然后它会挂起导出。
在数据库方面,我有一个视图,然后存储的procudre只是从视图中选择*。当从SSMS查询时,它会拉出180,000行(12列)并需要3秒。
如果我将查询编辑为仅拉出100行,则它会顺利运行,因此问题似乎是拉出了大量数据。但是用户需要完整的数据集。
有时导出按钮工作,我能够检索文件,但大多数时候我收到System.OutOfMemoryException错误(所有数据量都相同。)
为了绕过这种内存不足异常并且仍然提供完整的数据集,我能做些什么吗?谢谢。