Importação OLEDB de leitura de dados CSV para VB.NET '-' como 0
Saudações úteis pessoas deliciosas,
Tenho um problema com a leitura de arquivos CSV e a conversão para tabelas de dados no VB.Net. Se o arquivo CSV contiver uma coluna cheia de '-', na importação para a tabela de dados, eles aparecerão como '0' e a coluna inteira será formatada em um formato numérico.
O código que escrevi é:
Public Function LoadCsvFile(filePath As String) As DataTable
Try
DTReadCSV = New DataTable
Dim connection As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Microsoft.VisualBasic.Left(filePath, InStrRev(filePath, "\")) & ";Extended Properties=""text;HDR=Yes;FMT=Delimited""")
Dim adapter As New OleDb.OleDbDataAdapter("SELECT * FROM [" + Microsoft.VisualBasic.Mid(filePath, InStrRev(filePath, "\") + 1) + "]", connection)
'Dim table As New DataTable()
adapter.Fill(DTReadCSV)
'now thats its nicely in a datatable
IntAmountRows = DTReadCSV.Rows.Count
IntAmountColumns = DTReadCSV.Columns.Count
'System.Diagnostics.Debug.Print(DTReadCSV.Rows.Item(1)(1).ToString)
Return DTReadCSV
Exit Function
Catch ex As Exception
MsgBox(ex.ToString())
MsgBox(Err.Number & " " & Chr(13) & Err.Description)
End Try
End Function
Alguém mais inteligente pode descobrir como combater esse problema, além de modificar o arquivo CSV removendo o '-' como espaços em branco, que no momento parece a única maneira de importar esses arquivos CSV.
Muito Obrigado