将MS Access数据库中的列值填充到VB .Net Combo-Box下拉值中?

时间:2014-07-30 11:52:35

标签: vb.net combobox

我正在使用我在VB .net 2010中开发的应用程序从Access MDB文件访问数据。 我想从特定的表列中获取要在组合框下拉列表中填充的值。

我跟着类似的线程@ C# Adding data to combo-box from MS Access table,但由于代码在C#中,我无法成功实现它。并恢复到我以前的代码。

因为Table也会被其他应用程序更新,所以每次使用我的实用程序时,我都需要从该表中获取最新数据。因此,我希望有一个功能可以从表中获取所有可用的id。

以下是我一直试图做的事情..

'below declared at class level. 
' Dim cnnOLEDB As New OleDbConnection
' Dim cmdOLEDB As New OleDbCommand

cnnOLEDB.Open()

cmdOLEDB.CommandText = "select unique_id from tag_data"
cmdOLEDB.Connection = cnnOLEDB

Dim rdrOLEDB2 As OleDbDataReader = cmdOLEDB.ExecuteReader

If rdrOLEDB2.Read = True Then
    TagComboBox1.DataSource = rdrOLEDB2.Item(0).ToString

    TagComboBox1.ValueMember = "unique_id"
    TagComboBox1.DisplayMember = "unique_id"

End If
rdrOLEDB2.Dispose()
rdrOLEDB2.Close()
cnnOLEDB.Close()

1 个答案:

答案 0 :(得分:1)

我建议您使用查询填写DataTable。然后你可以设置组合框的DataSource,ValueMember& DisplayMember。

 Dim dt As New DataTable
 Dim query As String = "select unique_id from tag_data"

 Using connection As New OleDbConnection("your connection string")
  Using command As New OleDbCommand(query, connection)
    Using adapter As New OleDbDataAdapter(command)
        connection.Open()
        adapter.Fill(dt)
        connection.Close()
    End Using
  End Using
 End Using

 If dt.Rows.Count > 0 Then
  TagComboBox1.DataSource = dt
  TagComboBox1.ValueMember = "unique_id"
  TagComboBox1.DisplayMember = "unique_id"
 End If