如何从访问数据库列中获取每个唯一值并添加到组合框项目

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 子句

以上是关于如何从访问数据库列中获取每个唯一值并添加到组合框项目的主要内容,如果未能解决你的问题,请参考以下文章

如何从一列中查找每个值并使用“;”返回电子邮件地址分隔器

如何将 ARGB 值绑定到组合框项中的矩形填充属性?

VBA 中的动态组合框项

Python:从数据框的列中获取唯一值的组合

PSQL - 查找所有值并根据另一列中的非唯一值使其唯一

我们如何组合来自相同 data_type 的数据帧的两列的值并获取每个元素的计数?