Hi,
ich versuche gerade, in eine gebundene Listbox 2 Spalten zu bekommen, wobei in der zweiten Spalte nur manchmal Daten stehen können.
Ich habe bereits das hier probiert, scheitert aber daran, das mein Dataset "tables" gar nicht kennt....
verschiedene Spalten als DisplayMember aus DataSet
Ich kann das leider auch nicht in der Datenbank selbst (MariaDB) mit Concat zusammenfügen, da mir die DB dann immer nur "NULL" für alle Spalten ausspuckt.
Idee dahinter ist eine kleine Lagerverwaltung.
Jeder Lagerplatz hat eine verschiedene Parameter wie Volumen und max. zulässiges Gewicht. Jeder Lagerplatz kann leer oder mit einem oder mehreren Artikeln belegt sein.
Das will ich in einer Liste (will kein Datagrid dafür nehmen) darstellen. In der hinzuzufügenden Spalte "belegt" steht dann entweder nichts oder eine oder mehrere Artikelnummern (das macht die Funktion Group_concat)
Allerdings läßt sich komischerweise ein concat mit einem Group_concat Ergebnis nicht zusammenführen. Dann steht in allen Spalten NULL. Deswegen dieser Ansatz....
Das ist mein bisheriger Code:
ich versuche gerade, in eine gebundene Listbox 2 Spalten zu bekommen, wobei in der zweiten Spalte nur manchmal Daten stehen können.
Ich habe bereits das hier probiert, scheitert aber daran, das mein Dataset "tables" gar nicht kennt....
verschiedene Spalten als DisplayMember aus DataSet
Ich kann das leider auch nicht in der Datenbank selbst (MariaDB) mit Concat zusammenfügen, da mir die DB dann immer nur "NULL" für alle Spalten ausspuckt.
Idee dahinter ist eine kleine Lagerverwaltung.
Jeder Lagerplatz hat eine verschiedene Parameter wie Volumen und max. zulässiges Gewicht. Jeder Lagerplatz kann leer oder mit einem oder mehreren Artikeln belegt sein.
Das will ich in einer Liste (will kein Datagrid dafür nehmen) darstellen. In der hinzuzufügenden Spalte "belegt" steht dann entweder nichts oder eine oder mehrere Artikelnummern (das macht die Funktion Group_concat)
Allerdings läßt sich komischerweise ein concat mit einem Group_concat Ergebnis nicht zusammenführen. Dann steht in allen Spalten NULL. Deswegen dieser Ansatz....
Das ist mein bisheriger Code:
VB.NET-Quellcode
- Dim sql As String
- Dim SDA As New MySqlDataAdapter
- Dim dbDataset As New DataTable
- Dim bSource As New BindingSource
- Dim Mysqlconn As New MySqlConnection
- Mysqlconn.ConnectionString = DBConnection
- sql = "Select LP.ID, concat(LP.Lagerplatz, ' \t', LA.Lagerart, ' \t', LA.Gewicht, ' kg \t', LA.Tiefe, 'Tx',LA.Breite,'Bx', LA.Hoehe,'H ', Lo.Lagerort) AS Lagerort, Group_concat(LB.ArtikelID) as belegt from Lagerplatz LP "
- sql = sql & "inner join Lagerart LA on LP.Lagerart = LA.ID "
- sql = sql & "inner join Lagerort LO on LP.Lagerort = LO.ID "
- sql = sql & "left OUTER join Lagerbelegung LB ON LP.Id = LB.Lagerplatz"
- sql = sql & " GROUP BY lb.Lagerplatz, lp.Lagerplatz"
- sql = sql & " ORDER BY lp.Regal, lp.Fach, lp.Ebene, lp.Unterfach, lp.Fachboden"
- COMMAND = New MySqlCommand(sql, Mysqlconn)
- SDA.SelectCommand = COMMAND
- SDA.Fill(dbDataset)
- bSource.DataSource = dbDataset
- lstLagerplatz.DisplayMember = "Lagerort" 'Hier würde ich gerne Lagerort + belegt anzeigen
- lstLagerplatz.ValueMember = "ID"
- lstLagerplatz.DataSource = bSource
- SDA.Update(dbDataset)
- lstLagerplatz.SelectedIndex = -1