我在读取包含字母数字数据的 csv 文件时遇到问题。下面是我在经典 asp 中的代码:
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
ls_map_path & ";Extended Properties=""Text;HDR=Yes;FMT=Delimited"";"
Set lo_conn = Server.CreateObject("ADODB.Connection")
lo_conn.Open strConn
Set lo_rs = Server.CreateObject("ADODB.recordset")
lo_rs.CursorLocation = adUseClient
lo_rs.open "SELECT * FROM " & as_file_name, lo_conn, adOpenStatic, adLockOptimistic, adCmdText
下面是数据:
user_id,status,last_name,first_name,middle_name
1234,1,DeVera,athan,M.
1234,1,De Vera,athan,M.
ABC1,1,Santos,Shaine
abcd,1,Santos,Luis
1234,1,De Vera,athan,M.
1234,1,De Vera,athan,M.
ABC1,1,Santos,Shaine
当使用 lo_rs.fields.Item("user_id")
读取“user_id”列时,它完美地检索了“1234”user_id 值。但是其他具有字母数字值的数据返回给我一个空值。
我不知道它返回 null 的原因。但是,如果数据全部是字母数字,那么它会完美地读取 user_id 列。我认为唯一的问题是,如果 csv 数据在一列中混合了数字和字母数字值。
有人知道怎么解决吗?或者我只是在连接字符串中缺少文本。
请提前告知,非常感谢您的帮助!
最佳答案
要绕过类型推断,您可以创建一个 SCHEMA.INI
定义 CSV 文件中每一列的类型。
设置 HDR=NO
并在包含 CSV (ls_map_path
) 的目录中创建一个 schema.ini:
[filenamehere.csv]
Col1=user_id Text
Col2=status Long
Col3=last_name Text
Col4=middle_name Text
文本提供程序使用的类型映射现在基于上述架构。
关于csv - 经典的 asp - 读取包含字母数字数据的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6981234/