在我的ASP.NET应用程序(使用vb.net)中,当使用OLEDB连接查询csv文件时,我得到错误“syntax error in FROM clause”。
connString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" &
Server.MapPath(strFolderPath) & ";Extended
Properties=""Text;HDR=Yes;FMT=Delimited(,)"";"
conn = New OleDbConnection(connString)
query = "SELECT * FROM " & FilePath
'File path is C:\DEV\Uploads\file.csv
cmd = New OleDbCommand(query, conn)
da = New OleDbDataAdapter(cmd)
ds = New DataSet()
da.Fill(ds, "Putaway") 'here throwing error
请问如何解决。
2条答案
按热度按时间bogh5gae1#
对于初学者,不要使用OLEDB读取CSV文件。CSV文件只是文本文件,值由逗号分隔。仅此而已您可以将数据作为文本读取,或者使用像CsvHelper这样的库来解析CSV文件,甚至可以将它们 Package 在DataReader中。
例如,使用CsvHelper的CsvDataReader类,您可以将代码替换为:
这段代码在Windows和Linux上都适用,适用于32位和64位应用程序
此代码中使用的Access驱动程序有几个问题,在Web应用程序中应避免使用。创建它是为了允许Office应用程序读取Access和Excel和CSV文件,而不是用于一般用途。CSV文件以一种奇特的方式得到支持
1.它需要安装ACE引擎
该驱动程序将文件夹视为“数据库”,并将该文件夹中的文件名视为表名。这意味着
FilePath
必须是file.csv
,而不是完整路径C:\DEV\Uploads\file.csv
dly7yett2#
我解决了直接使用csv文件名而不使用fullpath的问题。