VB.NET ComboBox alle benutzernamen aus allen Tables einer MySQL Datenbank einsehen?
Hey Leute,
ich würde gerne in mein Programm das so machen, dass wenn ich die ComboBox auswähle das er mir dann, alle 'Benutzernamen' aus allen Tables der MySQL Datenbank 'Beispiel' anzeigt.
Ist dies evtl. möglich oder gibt es da ein anderen Trick?
Bin über jede Anwort froh!
Bedanke mich schonmal im vorraus
Lieben Gruß
2 Antworten
Ich kann kein VB.NET aber SQL. Gehe wie folgt vor:
- Alle Tabellen der DB aus der Information_schema Tabelle auslesen
- Alle Spalten der gerfundenen Tabellen auslesen und auf die Spalte "Benutzername überprüfen"
- Daten auswerten.
Ich bin grade nur vom Handy aus on, daher kann ich den Query nicht testen.Aber er sollte so in etwa aussehen:
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('Benutzername')
AND TABLE_SCHEMA='Verwaltung';
Nun hast du die Tabellen mit dem Benutzernamen in einem Array (In VB.NET).
Dieses Array loopst du in einer foreach schleife und fügst für jeden Index eine Option in der ComboBoy hinzu. BTW, versuche deine DB zu normalisieren, das erleicht die Arbeit auf dauer ungemein!
Habe es so hinbekommen aber trotzdem danke
Dim dt = MysqlConn.GetSchema("TABLES")
combo.DataSource = dt
combo.DisplayMember = "table_name"
combo.ValueMember = "table_name"
Das lässt sich mit den Infos nicht wirklich im Detail beantworten, möglich ist es definitiv
Was du berücksichtigen solltest, ist dass eventuell sehr viele Benutzer in der Datenbank stehen, und die Abfrage deshalb sehr lange dauern oder die Anwendung blockieren kann
Welche Technologie benutzt du denn zur Datenbankanbindung? Entity Framework, Linq to SQL, Table Adapter
Ist es ein SQL Server?
MySQL benutze ich. Habe ein Hauseigenen Server bei mir stehen und auf diesen läuft der MySQL Server
Das lässt sich hier nicht in Kurzform erklären
Installier dir das Nuget Paket MySql.Data
Dann führe das Statement über einen MySqlCommand aus
Das Statement sieht irgendwie so aus
SELECT TOP 10 DISTINCT Benutzername
FROM Tabelle
Vielen dank für die Schnelle Rückmeldung.
Also nochmal im Detail ich habe die Datenbank "verwaltung" und in der Datenbank sind Tables erstellt worden und in den verschiedenen Tables kommt überall 'Benutzername' vor.
Und im Programm ist eine ComboBox, wo alle Einträge von den verschiedenen Tables mit dem Coloum 'Benutzername' angezeigt werden sollen.
Dazu bräuchte ich den richtigen Query Code für VB.NET.
Hoffe ich habe mich richtig ausgedrückt :)