2016-02-05 138 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