如何从访问数据库列中获取每个唯一值并添加到组合框项目
Posted
技术标签:
【中文标题】如何从访问数据库列中获取每个唯一值并添加到组合框项目【英文标题】:how to get each unique value from access database column and add to combobox items 【发布时间】:2014-12-18 03:20:12 【问题描述】:我不是专业人士,但我正在努力学习 VB.net。我正在制作一个项目,我被困在我想从访问数据库中的列中获取每个唯一值并将其添加到我的组合框的地方。谁能帮帮我??
Private Sub showItems()
Dim comm As OleDbCommand
Dim commStr As String = "SELECT Item_Name FROM Add_Items WHERE (Item_Name <> '"
Dim RD As OleDbDataReader
conn = New OleDbConnection(connStr)
conn.Open()
If cbItemname.Items.Count = 0 Then
comm = New OleDbCommand("Select Item_Name from Add_Items", conn)
RD = comm.ExecuteReader
While RD.Read
cbItemname.Items.Add(RD.GetString(0))
End While
End If
For Each i As Object In cbItemname.Items
comm = New OleDbCommand(commStr & i & "')", conn)
RD = comm.ExecuteReader
While RD.Read
cbItemname.Items.Add(RD.GetString(0))
Exit While
End While
Next
conn.Close()
End Sub
【问题讨论】:
【参考方案1】:comm = New OleDbCommand("Select DISTINCT Item_Name from Add_Items", conn)
http://office.microsoft.com/en-in/access-help/HV080760568.aspx
您可能会收到此错误,因为您的数据库表名不正确。确保您位于“表”选项卡中并检查表的名称。 DISTINCT 和 UNIQUE(for mysql) 是正确的解决方案。
【讨论】:
【参考方案2】:我遵循了 vipul 的指示。它运行良好,我为品牌和模特制作了更多私人潜艇,但它突然停止工作。现在,当我的表单从以前的父表单加载时,它会挂起。
Private Sub showItems()
Dim comm As OleDbCommand
Dim commStr As String = "SELECT DISTINCT Item_Name from Add_Items"
Dim ReadData As OleDbDataReader
itemnamecombo.Items.Clear()
ItemChkboxList.Items.Clear()
Try
conn = New OleDbConnection(ConnStr)
conn.Open()
comm = New OleDbCommand(commStr, conn)
ReadData = comm.ExecuteReader
While ReadData.Read
itemnamecombo.Items.Add(ReadData.GetString(0))
ItemChkboxList.Items.Add(ReadData.GetString(0))
End While
Catch ex As Exception
'MessageBox.Show(ex.Message)
Finally
conn.Dispose()
End Try
If itemnamecombo.Items.Count <> 0 Then
itemnamecombo.SelectedIndex = 0
End If
End Sub
【讨论】:
我自己找到了解决方案,我只需要删除他最后一个 if 子句以上是关于如何从访问数据库列中获取每个唯一值并添加到组合框项目的主要内容,如果未能解决你的问题,请参考以下文章