.net - 使用 ADO.net(OLEDB) 导入 UTF-8 CSV 文件

标签 .net vb.net csv utf-8

我使用此代码导入一个文本文件(.CSV),但是当此文件是由UTF-8代码创建时,无法成功。只要我另存为ANSI代码(使用Note.exe)就可以了。

Function getDataset(ByVal sql As String, ByVal path As String) As DataSet
    'Try
    'Dim connstr As String = GetINI("Setting", "cString",     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\DataSouce\DataBase.mdb", Application.StartupPath & "\setting.ini")
    Dim connstr As String = "Provider=Microsoft.jet.OLEDB.4.0;Data Source= " & path & "\;Extended Properties=""text;HDR=YES;FMT=Delimited"""
    Dim conn As OleDbConnection = New OleDbConnection(connstr)                   '("provider=microsoft.Jet.OLEDB.4.0;data source=" & CurDir() & "\data.mdb")
    Dim adapter1 As OleDb.OleDbDataAdapter = New OleDbDataAdapter(sql, conn)
    Dim cmd As OleDbCommand = New OleDbCommand
    Dim commandBuilder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter1)
    getDataset = New DataSet
    adapter1.Fill(getDataset, "temp")
    'Catch ex As Exception
    '    MsgBox(ex.Message)
    'End Try

 End Function

我什至尝试构建这样的 schema.ini,也不行

[temp.CSV]
Format=Delimited(,)
ColNameHeader=false
MaxScanRows=0
CharacterSet= ANSI  
 (or  UTF-8 )

最佳答案

VB 有一个内置的 csv 解析器。看看这篇文章:http://coding.abel.nu/2012/06/built-in-net-csv-parser/ .

TextFieldParser 位于 Microsoft.VisualBasic.FileIO 命名空间中。如果您在 C# 中构建模块,则必须导入它。

关于.net - 使用 ADO.net(OLEDB) 导入 UTF-8 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641179/

相关文章:

c# - 将 ASP.Net Core 2 (.NET Framework) Web Api 拆分为类库和托管项目是否可能/明智?

c# - 将html文件转换成PDF文件?

c# - 单击表单上任何数据 GridView 的保存按钮时提交当前脏单元格

vb.net - 如何迭代锯齿状数组?

mysql - 将 CSV 导入 MySQL 并转换日期

python - 如何使用 Scrapy 在一个文件中维护项目的字段名称?

c# - GetHashCode() 用于依赖 OrdinalIgnoreCase 的字符串类

.net - 列出 2 个日期时间中的可用时间

java - 将 CSV string[] 转换为 string[][]

.net - DeleteAllOnSubmit 和 deleteonSubmit 之间的 asp.net mvc 差异