.net读取CSV文件

这篇博客主要探讨了.NET读取CSV文件时遇到的问题,包括数据中包含逗号导致的解析错误以及ADO、OLEDB读取时的数据类型自动判断可能导致的数据丢失。作者推荐使用Microsoft.VisualBasic.FileIO.TextFieldParser来解决这些问题,提供了VB.NET和C#的示例代码,这种方法能够有效且高效地解析CSV文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、csv文件各列默认是以英文逗号(,)来分割的。但是在实际中,数据中也会有包含英文逗号,Windows在保存这类的数据时会把含有逗号的数据当做字符串保存,在两端会加上双引号。此时如果简单的用英文逗号做split,读出来的数据完全不是想要的。(在确保数据中不包含特殊字符的情况下可以用split)


2、ADO、OLEDB读取CSV文件

这种可以很快读取数据,也可以避免1中的问题。

但是出现了另外一种情况,ISAM机制会自动判断各列的数据类型(详细参阅https://www.douban.com/note/18510346/)。此时,如果实际数据类型与判断出来的数据类型不匹配的话,系统会用NULL替换,造成数据的丢失。

注:在读取EXCEL文件的时候,可以设 IMEX=1 ,此时会把所有列作为文本读取,但是CSV中该参数没用。

简单示例(OLEDB):

' 读取csv到Datatable
        Dim Source_Path As String
        Dim File_name As String = File_FullName.Split("\")(UBound(File_FullName.Split("\")))
        Source_Path = File_F
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值