Asp.net mvc 5 MVC Linq在导出到Excel期间引发间歇性空引用异常
我在6个区域使用相同的代码,每个区域都有一个单独的数据库。很长一段时间以来工作正常,现在6个中的3个出现了失败,出现了空引用异常。类,所有数据库表都保存数据。第一种方法是显示数据的视图,第二种方法由视图中的链接调用以将数据导出到Excel。3个案例正确显示和导出。在其他3种情况中,有2种情况下,数据在视图中正确显示,并且在应该在导出方法中检索数据时抛出null异常。在最后一种情况下,尝试返回视图时会引发null异常。在某些情况下无法理解它是如何工作的,但在其他情况下却无法理解Asp.net mvc 5 MVC Linq在导出到Excel期间引发间歇性空引用异常,asp.net-mvc-5,linq-to-entities,entity-framework-6,Asp.net Mvc 5,Linq To Entities,Entity Framework 6,我在6个区域使用相同的代码,每个区域都有一个单独的数据库。很长一段时间以来工作正常,现在6个中的3个出现了失败,出现了空引用异常。类,所有数据库表都保存数据。第一种方法是显示数据的视图,第二种方法由视图中的链接调用以将数据导出到Excel。3个案例正确显示和导出。在其他3种情况中,有2种情况下,数据在视图中正确显示,并且在应该在导出方法中检索数据时抛出null异常。在最后一种情况下,尝试返回视图时会引发null异常。在某些情况下无法理解它是如何工作的,但在其他情况下却无法理解 public Ac
public ActionResult PVS(string studySite, string currentFilter, int? page)
{
ViewBag.SelectedID = studySite;
if (studySite != null)
page = 1;
else
studySite = currentFilter;
ViewBag.CurrentFilter = studySite;
IQueryable<PVS> schedule = db.PVS.OrderBy(v => v.SiteNumber).ThenBy(v => v.Participant);
if (studySite != null)
{
string selectedID = studySite;
images = schedule.Where(v => v.SiteNumber == selectedID);
}
int pageSize = 10;
int pageNumber = (page ?? 1);
return View(schedule.ToPagedList(pageNumber, pageSize));
}
public void ExportPVSToExcel()
{
var grid = new System.Web.UI.WebControls.GridView();
var pvs = db.PVS.OrderBy(p => p.SiteNumber).ThenBy(p => p.Participant).ToList();
grid.DataSource = pvs;
grid.DataBind();
// create an Excel worksheet for the data export
ExcelPackage excel = new ExcelPackage();
var workSheet = excel.Workbook.Worksheets.Add("PVS");
var totalCols = grid.Rows[0].Cells.Count;
var totalRows = grid.Rows.Count;
var headerRow = grid.HeaderRow;
for (var i = 1; i <= totalCols; i++)
{
workSheet.Cells[1, i].Value = headerRow.Cells[i - 1].Text;
}
for (var j = 1; j <= totalRows; j++)
{
for (var i = 1; i <= totalCols; i++)
{
var data = pvs.ElementAt(j - 1);
workSheet.Cells[j + 1, i].Value = data.GetType().GetProperty(headerRow.Cells[i - 1].Text).GetValue(data, null);
}
}
using (var memoryStream = new MemoryStream())
{
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=PVS.xlsx");
excel.SaveAs(memoryStream);
memoryStream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
public ActionResult PVS(string studySite、string currentFilter、int?页)
{
ViewBag.SelectedID=studySite;
如果(studySite!=null)
page=1;
其他的
studySite=currentFilter;
ViewBag.CurrentFilter=studySite;
IQueryable schedule=db.PVS.OrderBy(v=>v.SiteNumber),然后是by(v=>v.Participant);
如果(studySite!=null)
{
字符串selectedID=studySite;
images=schedule.Where(v=>v.SiteNumber==selectedID);
}
int pageSize=10;
整数页码=(第1页);
返回视图(schedule.ToPagedList(pageNumber,pageSize));
}
public void ExportPVSToExcel()
{
var grid=new System.Web.UI.WebControls.GridView();
var pvs=db.pvs.OrderBy(p=>p.SiteNumber).ThenBy(p=>p.Participant.ToList();
grid.DataSource=pvs;
grid.DataBind();
//为数据导出创建Excel工作表
ExcelPackage excel=新的ExcelPackage();
var工作表=excel.Workbook.Worksheets.Add(“PVS”);
var totalCols=grid.Rows[0].Cells.Count;
var totalRows=grid.Rows.Count;
var headerRow=grid.headerRow;
对于(var i=1;i