csv - 经典的 asp - 读取包含字母数字数据的 csv 文件

标签 csv vbscript asp-classic

我在读取包含字母数字数据的 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/

相关文章:

vbscript - 用于 VBScript 性能测量的细粒度计时器

javascript - HTML 页面显示 vbscript 代码,而不是运行脚本。为什么?

mysql - 从 ASP 调用 Mysql SP 会产生错误

web-services - 从经典 ASP 使用 ssl .net web 服务

internet-explorer - 如何防止 Internet Explorer 连接超时?

scala - 将 DataFrame 保存为 CSV 时指定文件名

r - 将环境中的数据帧写入单独的 csv 文件

vbscript - 创建受密码保护的 zip 文件

python - 如何创建 CSV 文件的标题?

java - coSTLy(Time)如何在java中对csv文件进行读写操作?