我使用这段代码来导入一个文本文件(.CSV),但是当该文件采用UTF-8编码时,导入不成功。只有把它保存为ANSI编码(使用记事本.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 )
CharacterSet=
的有效值为CharacterSet=ANSI
和CharacterSet=OEM
。来源 - Esailija