【发布时间】:2014-03-27 02:59:26
【问题描述】:
我有 excel csv 文件,文件名中有一个点。 (这是行业命名约定,所以我无法更改。)我正在尝试使用 OLEDB 读取所有数据。如果我从文件名中删除点,我的命令将起作用。如果不是,则表示无效对象。如何忽略/解决文件名中的点?
文件名:ABC 测试银行 Trail Feb 2014 $ 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)复制同一文件,然后执行查询并删除文件跨度>
-
好主意。但问题是这些文件很大,因此可能会影响性能。如果没有任何效果,我必须走这条路。
-
+1 其他人遇到了同样的问题