Asp.net 类型'的例外情况;System.OutOfMemoryException';仅为10000张唱片而被抛出
当用户试图在excel工作表(.xlsx)中上载数据时,我遇到此错误。 这不是一个永久性的问题。我以前经常收到这个问题,大概一周一次。但今天这种情况经常发生Asp.net 类型'的例外情况;System.OutOfMemoryException';仅为10000张唱片而被抛出,asp.net,Asp.net,当用户试图在excel工作表(.xlsx)中上载数据时,我遇到此错误。 这不是一个永久性的问题。我以前经常收到这个问题,大概一周一次。但今天这种情况经常发生 private void ExportToExcelOpenOffice(DataTable dataDump) { long? empUserId = null; bool showTeamData = false; if (this.IsUserEntryValid()
private void ExportToExcelOpenOffice(DataTable dataDump)
{
long? empUserId = null;
bool showTeamData = false;
if (this.IsUserEntryValid())
{
if (CurrentUser.Details.UserType == UserType.User)
{
empUserId = CurrentUser.Details.EmployeeUserId;
showTeamData = true;
}
if (dataDump.IsValid(true))
{
// ExcelHelper.ToExcel(dataDump, "ELogger_DataDump.xls", this.Response);
// RichExcelHelper.ToExcel(dataDump, "ELogger_DataDump.xls", this.Response);
using (ExcelPackage pck = new ExcelPackage())
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Page 1");
ws.Cells["A1"].LoadFromDataTable(dataDump, true);
//Write it back to the client
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=ELogger_DataDump.xlsx");
Response.BinaryWrite(pck.GetAsByteArray());
Response.Flush();
Response.End();
}
}
else
{
lblMessage.Visible = true;
lblMessage.Text = "No records found.";
}
}
else
{
lblMessage.Visible = true;
lblMessage.Text = this.errorMessage;
}
}
好吧,只是为了让任何一个人来这里讨论类似的问题。让我澄清一下,上面提到的代码没有错。我优化了我的Sql存储过程。我所做的一件事是向某些列添加了非聚集索引,这提高了性能
在存储过程中也很少进行其他与业务需求相关的更改。总而言之,优化查询对我来说是成功的
你会得到你的答案[这里][1][1]: