2011-03-17 61 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

相关问题