我正在将数据从csv文件导入到我的vb.net应用程序中。以下是我用来实现此目的的当前代码:
Dim myImportConnectionString As String = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & txtboxSelectFile.Text & "';Extended Properties=""Excel 8.0;IMEX=1"""
Dim MyImportConnection As New System.Data.OleDb.OleDbConnection
MyImportConnection.ConnectionString = myImportConnectionString
MyImportConnection.Open()
Dim myImportAdapterString As String = "select * from [" & mySheet & "$]"
Dim MyImportCommand As New System.Data.OleDb.OleDbCommand(myImportAdapterString, MyImportConnection)
Dim myImportDataAdapter As New System.Data.OleDb.OleDbDataAdapter(MyImportCommand)
Dim myImportDataTable As New System.Data.DataTable
myImportDataAdapter.Fill(myImportDataTable)
dgvFirst.DataSource = myImportDataTable
myImportDataAdapter.Dispose()
MyImportCommand.Dispose()
MyImportConnection.Close()
MyImportConnection.Dispose()
GC.Collect()
我遇到的问题是数据是UTF8编码的。导入时,任何特殊字符显示不正确。我可以打开csv文件并使用正确编码的唯一方法是手动打开它,使用Excel,并将数据导入新的Excel文件。
有什么方法可以指定在将文件自动导入到vb.net数据表中时使用的编码,以便正确显示外来字符?
非常感谢:)
答案 0 :(得分:0)
您可以将zlib.createInflate()
作为输入编码添加到;CharacterSet=ANSI
:
替换
Extended Properties
通过
Dim myImportConnectionString As String = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='"_
& txtboxSelectFile.Text & "';Extended Properties=""Excel 8.0;IMEX=1"""
(想法来自here)