0

我正在使用 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 employees = excel.Worksheet("Sheet1").ToList();

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

例外没有说明哪条记录甚至哪个字段。

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

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

更新:

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

4

1 回答 1

1

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

于 2012-11-13T19:56:48.710 回答