我使用此代码从字段(驱动程序)..填充我的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
答案 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