导出到Excel内存异常

时间:2014-06-10 21:01:48

标签: sql vb.net out-of-memory export-to-excel

我有一个用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错误(所有数据量都相同。)

为了绕过这种内存不足异常并且仍然​​提供完整的数据集,我能做些什么吗?谢谢。

0 个答案:

没有答案