我通过Microsoft.Jet.OLEDB.4.0提供程序解析了CSV。对于我们的大多数任务而言,这一切都很好,但最近我注意到了一个问题。
我有一个CSV,其中有一个名为Rating的列,这通常是一个整数,但偶尔会是“1-2”或日期,例如“1/1/2010”。我将其导入的数据表已将其列显式设置为字符串,但是当读取非整数字段时,它将为null。
我是如何解决这个问题的?
答案 0 :(得分:1)
可能发生的事情是列中的前几个字段被嗅探以确定数据类型,然后当存在不同类型的后续列时,它们将被丢弃。
我相信您可以通过在连接字符串中向IMEX=1
添加Extended Properties
来关闭此行为。这会将阅读器设置为Intermixed Mode,它将字段作为文本读取。然后你可以通过另一个传递并自己设置类型。
答案 1 :(得分:1)
使用schema.ini文件(在包含.csv的文件夹中)并正确指定列数据类型。