作者zach (帅阿! 三连霸!!!)
看板C_Sharp
标题关於C# & ADO.NET中用OLEDB读 CSV档案
时间Thu Jul 31 10:09:29 2008
※ [本文转录自 Database 看板]
作者: zach (帅阿! 三连霸!!!) 看板: Database
标题: 不知道能不能在这问 关於C# & ADO.NET中用OLEDB读CSV
时间: Thu Jul 31 10:08:11 2008
我的联接字串与指令如下
strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " +
folderwithpath + ";Extended Properties='Text;HDR=Yes;IMEX=1;FMT=Delimited'";
strCom = "Select * From " + System.IO.Path.GetFileName(filepath);
再用adapter fill到DataTable中
因为在CSV档案中有一栏含有整数与在小数(在几百ROW之後)
结果程式读进来会自动将此栏读为整数
想请问有没有办法将所有的栏位都读成文字档(的写法)?
(因为资料有18万行以上,用stream读再填入一直都很慢...
也不知道是写得不好还是真的很慢...所以改用OLEDB去读
)
谢谢
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.128.77.210
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.128.77.210
1F:推 horngsh:直接用StreamReader class, 再用split方法就可以了.... 07/31 15:03
2F:推 horngsh:用OLEDB可能较慢.... 07/31 15:03
3F:→ zach:18万ROW真的可以很快读完吗? 如果说要边读边填另一table中? 07/31 16:13
4F:推 horngsh:18万行当然是不快啦, 边读边秀出进度, 然後去做别的事... 07/31 16:29
5F:→ zach:因为用stream读一笔填一笔要将近45分钟 07/31 16:32
6F:→ zach:但是用OLEDB FILL 到TABLE只要30秒 07/31 16:32
7F:→ zach:所以才会考虑这样的做 但却发现他会自动转换栏位的格式 07/31 16:33
8F:→ zach:不知道有没有办法让她只用文字的方式转入 07/31 16:34
9F:推 sheauren:先弄一个前置作业 把整数的部分补上.0 变成有小数点如何? 08/01 18:32