Entwickler-Ecke

WinForms - Daten in ComboBox


PANUE90 - Mi 07.05.08 08:06
Titel: Belegung einer Combobox mit einem Eintrag und einem Index
Hallo Leute,

Ich bearbeite zur Zeit ein C#-Projekt mit Anbindung an einer MS-Access-Datenbank und hab bezüglich Belegung einer Combobox folgendes Anliegen:

In der Access-Tabelle befinden sich folgende Einträge, die in das Projekt geladen wird
ANW BEZEICHNUNG
-----------------------------------------------
11010 Elektrotechnik AC Spannung 400 V
11030 Elektrotechnik AC Spannung 690 V
11050 Elektrotechnik AC Spannung 6 kV
11060 Elektrotechnik AC Spannung 10 kV
etc....

Mein Anliegen:
in der Combobox soll die Bezeichnung angezeigt werden, die ANW soll in der CBO indiziert werden.

Der DropdownStyle ist in DropdownList eingestellt, da keine Einträge von Hand aus gemacht werden soll.

LG aus Erlangen

Peter Albrecht


bakachan - Mi 07.05.08 08:17

Hallo PANUE90,
was genau ist nun deine Frage oder dein Problem?


PANUE90 - Mi 07.05.08 08:40
Titel: Combobox Index
In Visual Basic 6.0 funktioniert dies gemäß dieser Routine


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Private Sub loadCboTabellen(sql$, cbo As ComboBox)
   Dim rst As Recordset
   Set rst = dbs.Execute(sql)
   With cbo
       .Clear
       Do Until rst.EOF
       .AddItem (vartoStr(rst!tableBez))   //hier Bezeichnung "Elektrotechnik AC Spannung 400 V"
       .ItemData(.NewIndex) = vartoID(rst!ID_Table)  //hier ANW (als Index) 11010
       rst.MoveNext
       Loop
   End With
   Call closeRec(rst)
End Sub

In C#


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
if ((m_indexKomp == CFunctions.cBID_Antrieb) || (m_indexKomp == CFunctions.cBID_Geber))
            {
                //Startindex
                //this.cboANW.Items.Add("Zuweisung nicht möglich");
                this.cboANW.Items.Add(CVarManager.ID_UNDEFINED.ToString());

                int i = 0;
                foreach (DataRow dr in dt.Rows)
                {
                    this.cboANW.Items.Add(dr["BEZEICHNUNG"].ToString());   //Bezeichnungen
                    //this.cboANW. ???? dr["ANW"].ToString())   //zugeordnete Indizes aus der Tabelle
                    i++;                                                       
                }
            }
            else
            {
                
                this.cboANW.Items.Add(CFunctions.cAnwBZ_ET);    //Bezeichnungen
                //this.cboANW. ???? CFunctions.cAnwID_ET)       //zugeordnete Indizes aus der Tabelle
                this.cboANW.Items.Add(CFunctions.cAnwBZ_LT);
                //this.cboANW. ???? CFunctions.cAnwID_LT)
                this.cboANW.Items.Add(CFunctions.cAnwBZ_EL);
                //this.cboANW. ???? CFunctions.cAnwID_EL)
            }



LG Peter

Moderiert von user profile iconKlabautermann: Code- und CS-Tags eingefügt.


JüTho - Mi 07.05.08 09:40

Am liebsten würde ich bakachans Frage wiederholen: Was ist eigentlich Dein Problem?

Wahrscheinlich solltest Du in der SDK-Doku nachlesen, wozu bei einer ComboBox DataSource, ValueMember, DisplayMember, SelectedValue vorgesehen sind. Ordne diese Eigenschaften passend auf Deine Daten - fertig.

Jürgen

PS. Markiere Code, das liest sich besser: Textbereich markieren, "Bereiche"-Button drücken, das Plus neben "C#" drücken. Das kannst Du auch nachträglich erledigen, indem Du den früheren Beitrag änderst.