2012-02-05 24 views
0

我有下面的代码使用OleDbDataReader读取数据。VB.net读取CSV文件 - OleDBDatReader只返回数字

有趣的是,尽管我转换为字符串,但我只能返回数字。

Dim cn As New OleDbConnection 
Dim fileloc = Server.MapPath("~/test/") 
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileloc + ";Extended Properties='text;HDR=Yes;FMT=Delimited'" 
cn.Open() 

Dim cmd As New OleDbCommand 
    cmd.Connection = cn 
    cmd.CommandText = "SELECT * FROM feed.csv" 

Dim reader As OleDbDataReader = cmd.ExecuteReader() 
While reader.Read() 
    Response.Write(reader("Stock Number").ToString) 
End While 
reader.Close() 
cn.Close() 

所以我打开测试的csv文件,看看数据。

当“Stock Number”有字符串时,它不会返回数据。

IM-95-189-012 ---->返回空白

2241 ----->返回2241

2241B ----->返回空白

这是我第一次使用OleDbDataReader工作。

任何想法是怎么回事?

回答

1

如果您总是试图获取字符串值,那么请使用GetString。如果您需要更多的信息,检查knowledge base

Response.Write(reader.GetString("Stock Number")) 

This对此有直接的影响。答案是C#,但应该可以转换为VB。

+0

谢谢你的帮助。我试过你的代码,但我得到“输入字符串没有正确的格式”错误。我一直在谷歌搜索,并找到了这个网站。这个人得到完全相同的问题。 http://www.codeproject.com/Questions/268732/Csharp-upload-csv-column-data-type-problem – shinya 2012-02-06 18:07:24

+0

有趣。如果我看到其他任何内容,我会通知你。 – APrough 2012-02-06 18:18:44

+0

以上编辑包含C#解决方案的链接。 – APrough 2012-02-06 18:32:17