从第二条记录开始填充组合框

时间:2019-07-14 10:43:20

标签: vb.net

我使用此代码从字段(驱动程序)..填充我的ComboBox1。所有记录都出现在Combobox1中..如何制作,以便第一条记录不会出现在ComboBox1中..我希望记录以第二条记录开头我的combobx1 .. ID号是(1-2-3-4-5-6),依此类推。

    Private Sub Fill_Numeros_Drivers()
    Dim InfoAdapter As OleDbDataAdapter
    Dim InfoTable As DataSet
    ComboBox1.Items.Clear()
    Dim Sql As String = "SELECT DISTINCT Drivers From Table1"
    InfoAdapter = New OleDbDataAdapter(Sql, Conne)
    InfoTable = New DataSet
    InfoTable.Clear()
    InfoAdapter.Fill(InfoTable, "Table1")
    For Each rw As DataRow In InfoTable.Tables("Table1").Rows
        ComboBox1.Items.Add(rw(0).ToString())
    Next
    End Sub

1 个答案:

答案 0 :(得分:0)

将数据库对象保留在本地,以便您控制它们的关闭和处理。使用...结束使用块将为您做到这一点,即使存在错误也是如此。

我在查询中为DriverID添加了一个字段。无论您的“主键”字段如何适合,都可以确保记录的顺序。使用DISTINCT时,Order By子句中的字段必须在查询的Select部分中。此字段已下载但从未使用过。

第一次调用reader.Read读取第一条记录,但没有完成任何操作。第二个调用reader。Read现在在第二个记录上。

Private Sub Fill_Numeros_Drivers()
    Using Conne As New OleDbConnection("Your connection string")
        Using cmd As New OleDbCommand("SELECT DISTINCT Drivers, DriverID From Table1 Order By DriverID", Conne)
            Conne.Open()
            Using reader As OleDbDataReader = cmd.ExecuteReader
                reader.Read() 'Reads the first record
                Do While reader.Read
                    ComboBox1.Items.Add(reader.GetString(0))
                Loop
            End Using
        End Using
    End Using
End Sub