2011-04-05 144 views
0

我使用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個字母長

其他地方會被截斷嗎?

感謝

回答

1

不使用Jet OLEDB 4.0驅動程序,它會截斷你的長文,以255個字符,它會只讀255列/字段。如果你有超過255列/字段,你將無法全部閱讀。

其他人在計算器上建議使用:A Fast CSV Reader

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> 
+1

其實,更多的我想起來了,我認爲255是最大字段大小或Jet引擎。你可以嘗試將他的領域定義爲備忘錄而不是文本。但是,爲什麼你不使用框架?讀取一個CSV文件。 – 2011-04-05 23:03:39

1

你應該嘗試Datatype LongChar我成功吧。

0

請勿指定MaxScanRows = 0。 由於某種原因,它不工作。 嘗試MaxScanRows = 1000。這是工作。 或可選擇地嘗試編輯註冊表

[HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\辦公室\ 12.0 \ Access連接引擎\引擎\文本] 「的MaxScanRows」= DWORD:00001000