如何在Visual Basic 2010中将访问数据库中的值插入到组合框中

时间:2012-03-18 20:12:36

标签: visual-studio-2010

我设法只插入1个值,这是我在数据库中插入的第一个值。 问题是,我在组合框中有多个值,但它只插入第一个。

这是我的代码:

Dim query1 As New OleDbCommand(" SELECT MembrosCompasso.BI, MembrosCompasso.Ano FROM Compasso INNER JOIN MembrosCompasso ON Compasso.idCompasso = MembrosCompasso.idCompasso WHERE BI=@BI ", con)
        query1.Parameters.Add("@BI", OleDbType.VarChar).Value = BI.Text
        Dim dr1 As OleDbDataReader = query1.ExecuteReader

        Try
            If dr1.HasRows Then
                dr1.Read()
                Ano.Items.Item.add(dr1("Ano"))
            Else
                MsgBox("Não exsitem registos!")
            End If
        Catch ex As Exception
            ' tratamento de erros
        Finally
            dr.Close()
            con.Close()
        End Try

1 个答案:

答案 0 :(得分:0)

当您使用DataReader时,每次调用.Read方法时当前位置都会前进一行,您不会通过一次调用获取阅读器中的所有记录。 Read返回一个布尔值,告诉您它是否成功,以便您知道是否可以前进到下一条记录,因此您的代码应该更像:

...
If dr1.HasRows Then
    'Loop around the reader until we run out of rows
    While dr1.Read
        'Add each rows' item to the combobox
        Ano.Items.Item.add(dr1("Ano"))
    End While
Else
...