使用ACE OleDb保留读取csv的前导零

时间:2016-07-06 12:53:01

标签: vb.net

通过Microsoft ACE Ole Db读取逗号分隔值(csv)文件时不保留的前导零意味着如果col值为0000123456,我只获得123456,而在vb.net中以编程方式读取。我不想在准备逗号分隔值(csv)文件时输入任何条件,即在零之前使用撇号等。 数据结构如下逗号分隔值(csv)文件

Name,ID
John,0001234
moon,0001235

但是我的身份是1234,1235,但我想用零ACE使用Microsoft ACE Ole Db

请大家好意思。谢谢提前

1 个答案:

答案 0 :(得分:1)

OleDb用于读取CSV文件的文本文件驱动程序无法准确确定列的数据类型。在您的情况下,您的第二列被误解为数字列,因为它只包含数字,因此删除了前导零。

你可以给OleDb一个强有力的提示,创建一个名为SCHEMA.INI的文件来解释文件的内容。

在你的情况下你可以在文件的同一个文件夹中创建一个(我假设这个例子有temp.csv)并写下这些行:

[temp.csv]
Format=CSVDelimited
ColNameHeader=True
Col1=Name Text
Col2=ID Text
DecimalSymbol=.

请注意,我需要指定DecimalSymbol是一个点,因为在我的语言环境中,逗号用作数字的小数和整数部分之间的分隔符(因此我们使用以分号分隔的CSV文件)