LinqToExcel "String was not recognized as a valid DateTime" - 如何捕获详细信息?



我正在使用LinqToExcel将大型Excel数据表导入SQL Server数据库表Employees2。我正在使用 EF4。Excel中的日期字段(DOB和许多其他)采用"MMddyyyy"格式。我在Excel中有很多字段,我在这里只显示1个映射。


var excel = new ExcelQueryFactory(excelPath);
excel.AddMapping<Employee2>(x => x.DOB, "DOB", 
s => String.IsNullOrEmpty(s) ? DateTime.MinValue : 
DateTime.ParseExact(s, @"MMddyyyy", CultureInfo.CurrentCulture.DateTimeFormat));
var employees = excel.Worksheet<Employee2>("Sheet1").ToList();
employees.ForEach(e => context.Employee2.AddObject(e));
context.SaveChanges();

代码引发异常"字符串未被识别为有效的日期时间"。

在以下代码行上: VaR 员工 = 卓越。工作表("工作表 1")。ToList();

我的问题是:如何捕获导致异常的确切记录?

例外不会说明哪个记录,甚至哪个字段。

只是为了确保转换正常,我在命令窗口中运行了:

DateTime.ParseExact("08012012", "MMddyyyy", CultureInfo.CurrentCulture.DateTimeFormat)

更新:

自己找到了解决方案:EF 异常:字符串或二进制数据将被截断。该语句已终止。?

您需要下载 LinqToExcel 的源代码,并使用源代码重新运行查询。然后,您可以中断异常并查看导致问题的实际行和值。

相关内容

最新更新