2016-02-05 99 views
-1

我试图从SQL结果表中读取特定的列值。我知道我们在c#中使用RowCount。但我不知道它是如何在VB6.0 例如做一个C#程序代码:使用vb6从表中获取列值

adapter.Fill(ds); 
    adapter.Dispose(); 
    con.Close(); 
    rowCount = ds.Tables[0].Rows.Count;// ds is dataset and I read that record set is used instead of dataset 
    if (rowCount > 1) 
    { 
    ab = ds.Tables[0].Rows[0][3].ToString(); 
    ad = ds.Tables[0].Rows[0][8].ToString();     
    } 

回答

1

在VB6你有ADO, DAO or RDO选择。 ADO是三种技术中较新的一种,并且是MS推荐的一种。

ADO例

Sub Example() 
    Dim cn As ADODB.Connection 
    Dim rs As ADODB.Recordset 

    ' Ready objects for use. 
    Set cn = New ADODB.Connection 
    Set rs = New ADODB.Recordset 

    ' Connect. 
    cn.Open "Driver={SQL Server};Server=My_Server_Name;Database=Master;Trusted_Connection=yes;" 

    ' Fetch a recordset. 
    rs.Open "SELECT TOP 10 Name FROM sys.Objects", cn, adOpenStatic, adLockReadOnly 

    ' Display value, and total recordcount. 
    MsgBox rs.Fields(0).Value 
    MsgBox rs.RecordCount 


    ' Close and release objects. 
    rs.Close 
    cn.Close 
    Set rs = Nothing 
    Set cn = Nothing 
End Sub 

ADO记录对象具有RecordCount property。小心!某些游标类型不会填充此属性。有关详细信息,请参阅链接。

ConnectionStrings.com是为您找到正确的连接字符串的好资源。

对于本示例的工作,您将需要add a referenceMicrosoft ActiveX Data Objects库。

+0

我可以这样写:ab = rs.Fields(0).value'获得第一列的值,而bc = rs.Fields(4).value'从第五个colmn获​​得值。 – suvi

+0

是的。如果您愿意,也可以使用列名。语法:* var1 = rs.Fields(“MyColumnName”)。Value *。 rs.MoveNext和rs.EOF将帮助您循环返回的记录。 –

+0

谢谢你..我有另一个小pblm ..你能帮助..? – suvi