从组合框中的访问数据库重复

Posted

技术标签:

【中文标题】从组合框中的访问数据库重复【英文标题】:Repeated from access database in combobox 【发布时间】:2016-05-18 17:16:25 【问题描述】:

大家好,这是我的第一篇文章,如果我犯了任何错误,我深表歉意。

我在我的代码中遇到了一个问题,其中重复值显示在组合框下拉选择中。我正在尝试从我的 Access 数据库中的列中显示值。

这是我的代码。

private void Spisak_Load(object sender, EventArgs e)
    
        OleDbConnection konekcija = new OleDbConnection(@"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = D:\Programiranje\Programi\Izlozba Pasa\Izlozba Pasa\izlozba.accdb");

        konekcija.Open();

        OleDbCommand komanda = new OleDbCommand("SELECT Sifra, NazivRase FROM Izlozba, Rasa", konekcija);
        OleDbDataReader reader = komanda.ExecuteReader();

        while(reader.Read())
        
            comboBox1.Items.Add(reader["Sifra"].ToString());
            comboBox2.Items.Add(reader["NazivRase"].ToString());
        
    

下面是问题的图片:

【问题讨论】:

【参考方案1】:

你在这里做什么:

SELECT Sifra, NazivRase FROM Izlozba, Rasa

是 Cross Join,导致两个表的笛卡尔积。这通常会导致结果集中出现重复值。

两个表之间应该有一个 INNER JOIN,如果你真的需要它们的话。

SELECT Sifra, NazivRase 
FROM Izlozba INNER JOIN Rasa
  ON <whatever the matching fields are>

编辑:哦,等等,我刚刚阅读了其余的代码。这两列进入两个单独的下拉框。您需要为它们创建两个单独的 SELECT 语句。

【讨论】:

我创建了单独的 SELECT 语句,现在它就像一个魅力。谢谢。【参考方案2】:
SELECT DISTINCT Sifra, NazivRase FROM Izlozba, Ras

在快速谷歌搜索之后,这可以帮助你在访问端:http://www.techonthenet.com/access/comboboxes/unique_values2013.php

【讨论】:

以上是关于从组合框中的访问数据库重复的主要内容,如果未能解决你的问题,请参考以下文章

从 R 中的数据框中删除重复的列组合

从访问 vba 中的多值组合框中获取值

从 onclick 事件访问组合框中的选定值

如何自动展开到组合框中的重复条目?

从 Pandas 数据框中选择组合

从绑定到数据集的组合框中删除重复项