经典的asp - 读取具有字母数字数据的csv文件

时间:2011-08-08 11:09:27

标签: 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。

我不知道它返回null的原因。但是,如果数据都是字母数字,则它会完美地读取user_id列。我认为唯一的问题是,如果csv数据在一列中具有混合数字和字母数字值。

有谁知道如何解决这个问题?或者我可能只是在连接字符串中缺少文本。

请提前告知并非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

要绕过类型推断,您可以创建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

文本提供程序使用的类型映射现在基于上述模式。