2016-05-18 5 views
1

Hallo allerseits, das ist mein erster Beitrag, also entschuldige ich mich, wenn ich irgendwelche Fehler gemacht habe.Wiederholt von Access-Datenbank in Combobox

Ich habe ein Problem in meinem Code festgestellt, bei dem wiederholte Werte in der Combobox Dropdown-Auswahl angezeigt werden. Ich versuche, Werte aus einer Spalte in meiner Access-Datenbank anzuzeigen.

Hier ist mein Code.

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()); 
     } 
    } 

Und hier ist ein Bild von dem, was das Problem wie folgt aussieht: http://imgur.com/b22g3vg

Antwort

1

Was Sie hier tun:

SELECT Sifra, NazivRase FROM Izlozba, Rasa 

ist ein Cross Join, was zu einem kartesischen Produkt beider Tabellen führt. Dies führt normalerweise zu doppelten Werten in der Ergebnismenge.

Es sollte einen INNEREN JOIN zwischen den beiden Tabellen geben, wenn Sie beide beide benötigen.

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

Edit: Oh warte, ich habe gerade gelesen, den Rest des Codes. Die zwei Spalten gehen in zwei separate Dropdown-Boxen. Sie müssen zwei separate SELECT-Anweisungen für sie erstellen.

+0

Ich habe die separaten SELECT-Anweisungen erstellt und jetzt funktioniert es wie ein Zauber. Vielen Dank. – kraguj