我正在尝试将数据调用到Excel并使用存储过程将Excel导出为电子邮件。但是,我有显示
的错误消息Exception:System.ArgumentNullException:值不能为null。参数名称:来源
我收到一条错误消息,表明它来自我的数据表源
这是我从存储过程中调用SQL的地方:
public List<DTO_List_Non_Upload> CallNonUpload()
{
var value = db.Database.SqlQuery<DTO_List_Non_Upload>("[WPSV2_Get_Non_Upload_Photo_Information] @DateFrom, @DateTo, @contractNo",
// get the cdr date for today parameter: datetime
new SqlParameter("@DateFrom", "20191001"),
// oc
new SqlParameter("@DateTo", "20191009"),
new SqlParameter("@contractNo", "Patrolmanwe")).ToList();
return value;
}
这是我希望将数据作为函数EmailSender()
返回的地方:
public List<DTO_List_Non_Upload> EmailSender()
{
return patrol_Export_Services.CallNonUpload();
}
这是我要将sql数据获取到Excel的地方:
var mylist = new List<DTO_List_Non_Upload>();
mylist = EmailSender();
string filepath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, System.Configuration.ConfigurationSettings.AppSettings["Exportexcel"].ToString());
ExcelXlsx excelXlsx = new ExcelXlsx(filepath);
DataTable Source = mylist.ToDataTable<DTO_List_Non_Upload>();
excelXlsx.RenderDataTableToSheet(0, Source, 1, 0, false);
错误:
异常:System.ArgumentNullException:值不能为null。
参数名称:来源
在System.Linq.Enumerable.Contains [TSource](IEnumerable
1 source, TSource value, IEqualityComparer
1比较器)
在KS.Utils.Common.Extension.ToDataTable [T](IList`1数据,String [] ignoreProperties)在C:\ coding \ ks-photo \ branches \ NewOA4600007097_export \ Patrol_Excel_Export \ KS.utils \ Common \ Extension.cs中:第29行
在C:\ coding \ ks-photo \ branches \ NewOA4600007097_export \ Patrol_Excel_Export \ Patrol_Excel_Export \ SchedulerPatrolExport.cs:第93行的Patrol_Excel_Export.SchedulerPatrolExport.run()中 在Patrol_Excel_Export.Program.Main(String [] args)中的C:\ coding \ ks-photo \ branches \ NewOA4600007097_export \ Patrol_Excel_Export \ Patrol_Excel_Export \ Program.cs:line 47
答案 0 :(得分:2)
查看堆栈跟踪
位于System.Linq.Enumerable.Contains [TSource](IEnumerable1源, TSource值,IEqualityComparer1比较器)位于 KS.Utils.Common.Extension。 ToDataTable
mylist
为空
if(mylist == null)
// Throw exceotpion or do something else
else {
DataTable Source = mylist.ToDataTable<DTO_List_Non_Upload>();
excelXlsx.RenderDataTableToSheet(0, Source, 1, 0, false);
}