我的excel csv文件在文件名中有一個點。 (這是行業命名慣例,所以我不能改變它。)我正在嘗試使用OLEDB讀取所有數據。如果我從文件名刪除點,我的命令起作用。如果沒有,它說無效的對象。如何忽略/解析文件名中的點?使用OLEDB讀取帶有額外點的文件名中的Excel csv文件
文件名:ABC測試銀行開拓者2014年2月$ 18083.65.csv
我的代碼:
Public Function GetAllData(ByVal FileName As String) As DataTable
Try
Dim dt As New DataTable
Using con As New OleDbConnection With {.ConnectionString = String.Format(ConnectionNoHeader, Path.GetDirectoryName(FileName))}
cn.Open()
Dim SQLAdapter As OleDbDataAdapter = New OleDbDataAdapter()
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM [" + Path.GetFileName(FileName) + "]", con)
SQLAdapter.SelectCommand = cmd
SQLAdapter.Fill(dt)
End Using
Return dt
Catch
Return Nothing
End Try
End Function
如果你只是讀取文件一次,然後一招是讓一些其他名稱相同的文件的副本,如abc.csv,然後做你的查詢,並刪除文件 –
好主意。但問題是這些文件很大,因此可能會影響性能。如果什麼都行不通,我必須走這條路。 – voddy
+1其他人有過同樣的問題 – SSS