Combobox & MySQL

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Combobox & MySQL

    Hallo Zusammen,

    ich fülle meine Combobox mit folgendem Code, mit Daten aus meiner MySql Datenbank

    VB.NET-Quellcode

    1. FillCombobox(ComboBox_Kostenstelle, "SELECT KST FROM " & sPraefix & "_kostenstellen", "KST", "KST")

    Wie kann ich das machen das ich in der Combobox zwei Werte angezeigt bekomme?
    Also es soll dann in der Combobox sowas angezeigt werden: KST | Bezeichnung

    Kann mir damit einer helfen?
    Nun ich denke mal das FillCombobox() irgendeine Funktion ist, eine selbstgeschriebene und somit hilft uns dein Code kein deut weiter.

    Aber irgendwo in der Funktion wird was davon stehen wie der Combobox mit Items.Add() Einträge hinzugefügt werden und wenn da momentan irgend ein Befehl drinsteht der sich auf die erste Spalte des SQL Queries bezieht kopierste den und setzt ihn nochmal dran mit einer String Verbindung. Also schematisch etwa so

    VB.NET-Quellcode

    1. Combobox.Items.Add(datatable.Items(0) & " | " & datatable.Items(1))


    Natürlich müsstest du im SQL Query dann auch noch mehr Spalten deiner Tabelle abfragen, weil momentan ja nur die KST Abgefragt wird, heißt also

    SQL-Abfrage

    1. SELECT KST, Bezeichnung FROM " & sPraefix & "_kostenstellen
    Stimmt habe ich vergessen mit zu posten. Habe den Code mal im Netz oder hier im Forum gefunden. Also hier die Funktion

    VB.NET-Quellcode

    1. Public Sub FillCombobox(ByVal cboCombo As ComboBox, ByVal sSQL As String, ByVal strTable As String, ByVal strDisplayMember As String)
    2. Dim cn As MySqlConnection
    3. cn = verbinden()
    4. Try
    5. Dim da As Common.DbDataAdapter = New MySqlDataAdapter(sSQL, cn)
    6. Dim dt As New DataSet
    7. da.Fill(dt, strTable)
    8. cboCombo.DataSource = dt.Tables(strTable).DefaultView
    9. cboCombo.DisplayMember = strDisplayMember
    10. Catch ex As Exception
    11. MessageBox.Show(ex.Message)
    12. Finally
    13. cn.Close()
    14. End Try
    15. End Sub
    uff du füllst die Combo mit einer DataTable, nun da weiß ich nicht genau wie es geht, wüsste nur den manuellen weg wie ich ihn beschrieben hatte.

    VB.NET-Quellcode

    1. For I As Itneger = 0 To dt.Rows.Count - 1
    2. cboCombo.Items.Add(dt.Rows.Item("KST"))
    3. Next


    Musst du mal rumspielen, ich kenne ausm Kopf nicht die genauen Namespaces einer DataTable oder eines DataSets, aber ähnliche müsste es dort geben.