如何在读取CSV记录时将空字符串转换为空?

时间:2016-12-28 14:37:20

标签: c# .net csv csvhelper

我正在阅读CSV文件并根据CSV文件的标题动态创建数据库表。

但是在读取csv数据并转入相关表时遇到问题。当我有一个十进制数据类型的列并且CSV字段包含空白时,问题就来了,所以它被视为字符串并低于错误。

错误

  

无法将参数值从String转换为Decimal。

我正在使用CSV Helper并通过类映射,也许我可以实现这一点,但我动态创建基于CSV文件的结构,因此我无法定义任何固定类。

以下是我发现的一个答案,如果是类地图,可能会有所帮助:Using CsvHelper can I translate white space to a nullable?

示例记录REcord

当sqlbulk copy尝试在SQL Server数据库表中转储这些数据时出现问题。

1 个答案:

答案 0 :(得分:1)

我认为您可能需要进行列映射。如果您使用的是SqlBulkCopy,则可以使用本文中描述的一些内容:

<强> Mapping columns in a DataTable to a SQL table with SqlBulkCopy