2011-03-17 46 views
1

我想檢索表中約800行的單列,並將這些值保存在數組中以便稍後參考。我該怎麼做?我試過:如何將檢索列從數據讀取器保存到數組中?

con = New OleDb.OleDbConnection("provider=SQLOLEDB;data source=PC;initial catalog=DB1;integrated security=SSPI") 

    cmd = New OleDbCommand("select col1 from table1", con) 

    con.Open() 

    r = cmd.ExecuteReader 

    While r.Read 

     prev_ob(i) = r.Item(0)(0) 

     i = i + 1 

    End While 

    For i = 0 To UBound(prev_ob) 

     Console.WriteLine(prev_ob(i)) 

    Next` 

而且它沒有工作。 col1是Int64類型,數組prev_ob()也是。請讓我知道如何將它保存到數組中。

回答

3

什麼是錯誤的越來越?更多信息將幫助您儘快獲得答案。

試試這個:

Dim int64list As New List(Of Int64) 

cmd = New OleDbCommand("select col1 from table1", con) 

    con.Open() 
    r = cmd.ExecuteReader 

    While r.Read 

     int64list.Add(Convert.ToInt64(r.Item(0)) 

    End While 

For Each obj In int64list 
    Console.WriteLine(obj) 
Next obj 

PS我寫在C#工程樣品,並試圖翻譯成VB.net。

+0

首先,好用戶名! :)接下來,當我試圖執行您發佈的代碼時,出現以下錯誤:對象無法從DBNull轉換爲其他類型。所以我嘗試了:'prev_ob.Add(r.Item(「col1」))'然後我得到了:從'DBNull'類型到'Long'類型的轉換無效。怎麼了? :( – CodingInCircles 2011-03-17 09:55:09

+0

它工作!:)其中一列是空的。我修改了我的查詢,它工作。謝謝! :) – CodingInCircles 2011-03-17 11:10:43

+0

有沒有什麼辦法可以使用這個列表的單個值進行計算,並可能在SQL查詢中使用? – CodingInCircles 2011-03-17 12:18:14

相關問題