VB.NET ComboBox alle benutzernamen aus allen Tables einer MySQL Datenbank einsehen?

2 Antworten

Ich kann kein VB.NET aber SQL. Gehe wie folgt vor:

  1. Alle Tabellen der DB aus der Information_schema Tabelle auslesen
  2. Alle Spalten der gerfundenen Tabellen auslesen und auf die Spalte "Benutzername überprüfen"
  3. 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!


x000xy221 
Beitragsersteller
 24.02.2019, 21:30

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


x000xy221 
Beitragsersteller
 23.02.2019, 01:59

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 :)

buffalo23  23.02.2019, 02:01
@x000xy221

Welche Technologie benutzt du denn zur Datenbankanbindung? Entity Framework, Linq to SQL, Table Adapter

Ist es ein SQL Server?

x000xy221 
Beitragsersteller
 23.02.2019, 02:05
@buffalo23

MySQL benutze ich. Habe ein Hauseigenen Server bei mir stehen und auf diesen läuft der MySQL Server

buffalo23  23.02.2019, 02:10
@x000xy221

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