2012-02-05 23 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