CSV列将返回null

时间:2011-03-31 19:01:05

标签: c# parsing csv

我通过Microsoft.Jet.OLEDB.4.0提供程序解析了CSV。对于我们的大多数任务而言,这一切都很好,但最近我注意到了一个问题。

我有一个CSV,其中有一个名为Rating的列,这通常是一个整数,但偶尔会是“1-2”或日期,例如“1/1/2010”。我将其导入的数据表已将其列显式设置为字符串,但是当读取非整数字段时,它将为null。

我是如何解决这个问题的?

2 个答案:

答案 0 :(得分:1)

可能发生的事情是列中的前几个字段被嗅探以确定数据类型,然后当存在不同类型的后续列时,它们将被丢弃。

我相信您可以通过在连接字符串中向IMEX=1添加Extended Properties来关闭此行为。这会将阅读器设置为Intermixed Mode,它将字段作为文本读取。然后你可以通过另一个传递并自己设置类型。

答案 1 :(得分:1)

使用schema.ini文件(在包含.csv的文件夹中)并正确指定列数据类型。

相关问题