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

标签 c# .net csv csvhelper

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

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

错误:

Failed to convert parameter value from a String to a Decimal.

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

这是我发现的 1 个答案,这可能对类映射有帮助:Using CsvHelper can I translate white space to a nullable?

样本记录:REcord

当 sqlbulk 复制尝试将这些数据转储到 SQL Server 数据库表中时出现问题。

最佳答案

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

Mapping columns in a DataTable to a SQL table with SqlBulkCopy

关于c# - 如何在读取 CSV 记录时将空字符串转换为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41364205/

相关文章:

c# - 在列表框中使用 SelectionChanged 取消选择项目时遇到问题

.NET核心| MVC 将音频文件传递给 html5 播放器。启用搜索

c# - Uri 类 (.NET) 中的奇怪行为

python - GAE Python - 每天将 CSV 保存到同一个 Blobstore 元素的任务

Python - 追加行的脚本;写入前检查重复项

c# - 如何使用 Entity Framework 提交具有多对多关系的对象?

c# - ASP.NET - @ 语法和 <% %> 之间的区别?

c# - 挣扎于 C# 事件示例

c# - 找不到类型或命名空间名称 'ServiceController'

php - 将 .csv 读取到多维数组,然后将其传递给 JavaScript