CSV列数据被截断
问题描述:
我使用Jet与连接字符串CSV列数据被截断
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + directory + ";Extended Properties='text;HDR=YES;FMT=Delimited';"
用的Schema.ini包含解析CSV文件:
[SelfCatering.csv]
Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0
在我的C#代码,我已经预定义了列数据类型为字符串,但由于某些原因,扩展的字符串列被截断为255个字符。如果我快速查看列数据本身,它只有255个字母长
其他地方会被截断吗?
感谢
答
不使用Jet OLEDB 4.0
驱动程序,它会截断你的长文,以255个字符,它会只读255列/字段。如果你有超过255列/字段,你将无法全部阅读。
其他人在计算器上建议使用:A Fast CSV Reader
答
您是否尝试过在你的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>
答
你应该尝试Datatype LongChar
我成功吧。
答
请勿指定MaxScanRows = 0。 由于某种原因,它不工作。 尝试MaxScanRows = 1000。这是工作。 或可选择地尝试编辑注册表
[HKEY_LOCAL_MACHINE \ SOFTWARE \微软\办公室\ 12.0 \ Access连接引擎\引擎\文本] “的MaxScanRows”= DWORD:00001000
其实,更多的我想起来了,我认为255是最大字段大小或Jet引擎。你可以尝试将他的领域定义为备忘录而不是文本。但是,为什么你不使用框架?读取一个CSV文件。 – 2011-04-05 23:03:39