CSV列数据正在被截断

时间:2011-04-05 22:03:59

标签: c# parsing csv

我正在使用带有连接字符串

的Jet解析CSV文件
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + directory + ";Extended Properties='text;HDR=YES;FMT=Delimited';"

使用包含以下内容的Schema.ini:

[SelfCatering.csv]
Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0

在我的c#代码中,我已将列数据类型预定义为字符串,但由于某种原因,扩展字符串列被截断为255个字符。如果我快速观察列数据本身只有255个字母

还有什么地方会被截断?

由于

4 个答案:

答案 0 :(得分:1)

不要使用Jet OLEDB 4.0驱动程序,它会将长文本截断为255个字符,并且只读取255列/字段。如果您有超过255列/字段,则无法全部阅读。

StackOverflow上的其他人建议使用:A Fast CSV Reader

答案 1 :(得分:1)

你应该尝试Datatype LongChar我成功了。

答案 2 :(得分:0)

您是否尝试在Schema.ini文件中指定字段类型:

<SelfCatering.csv>
   You can add comments here
</SelfCatering.csv>

<schema.ini>
[SelfCatering.csv]
ColNameHeader=TRUE
MaxScanRows=0
Format=CSVDelimited
Col1=ColName1 Text Width 50
Col2=ColName2 Text Width 50
Col3=ColName3 Text Width 500
</schema.ini>

答案 3 :(得分:0)

不要指定MaxScanRows = 0。 它由于某种原因不起作用。 尝试MaxScanRows = 1000。这是工作。 或者尝试编辑注册表

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 12.0 \ Access Connectivity Engine \ Engines \ Text] &#34;的MaxScanRows&#34; = DWORD:00001000