各位大侠:
      小弟刚学VB  在这个过程中遇到了一些难题 希望你们能给予帮助:      我的数据库中有张表: TABLE(年月日,流量(float),水位(float),大小(float))   里面 数据若干 
    我现在想 在 VB 中 通过数据库连接   将该表 赋给一个数组  并显示数组  同时还能对 数组中的单个元素进行处理;
   
    也即 需要解决以下问题:
     一  : 如何 将 数据库中的单张表中的值 赋给 VB中的一个数组 并在 form 中显示(数据库连接部分已做通)        Dim cn As New ADODB.Connection
            Dim rs As New ADODB.Recordset           cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial  Catalog=CBFS;Data Source=127.0.0.1;"          cn.Open          strSQL = "Select * From TABLE "           rs.Open strSQL, cn, adOpenDynamic, adLockOptimistic
   
 我该如何定义数组 并获得 该表中的值  并能随意调用 和显示TABLE(年月日,流量,水位,大小) 中的一个数据
          
       
   二 :  赋值后的 数组我希望还能进行处理 ;
            
         比如我想用第一个数据都减去第二个数据 然后得到第三个数据:   例如: a[3]= a[1]-a[2]

解决方案 »

  1.   

    dim strValues() as string        rs.MoveLast
            i = rs.AbsolutePosition
            rs.MoveFirst
            j = rs.Fields.Count - 1
            
            ReDim strValues(i, j)
            For k = 0 To j
                strValues(0, k) = rs.Fields(k).Name
            Next
            For k = 1 To i
                For l = 0 To j
                    strValues(k, l) = Trim(rs.Fields(l) & "")
                Next
                rs.MoveNext
            Next
      

  2.   

    没有调试,试试吧:
    Private Sub Command1_Click()
    Dim a()
    getdata a
    End Sub
    Sub getdata(ByRef a())
      Dim cn As New ADODB.Connection, rs As New ADODB.Recordset, num As Long           cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=;Initial  Catalog=CBFS;Data Source=127.0.0.1;"          cn.Open          strSQL = "Select * From TABLE "           rs.Open strSQL, cn, adOpenDynamic, adLockOptimistic
               Do While Not rs.EOF
               num = num + 1
               ReDim Preserve a(1 To 4, 1 To num)
               a(1, num) = rs(0)
               a(2, num) = rs(1)
               a(3, num) = rs(2)
               a(4, num) = rs(3)
              rs.movenext
              Loop
              Set rs = Nothing
              Set cn = Nothing
               
    End Sub
      

  3.   

    这种方法不好。开销太大。建议直接使用API将数据列取回到数组。
      

  4.   

    直接使用Recordset对象的GetRows方法可直接将表内容复制到数组