WinFuture-Forum.de: Database statt Tables in Combobox anzeigen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Database statt Tables in Combobox anzeigen


#1 Mitglied ist offline   Typhoon76 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 29. August 18
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Lustenau

geschrieben 12. September 2018 - 20:35

Hallo an die Profis
Ich kämpfe schon wieder mit einem Problem.
Ich möchte gerne den Inhalt einer Datenbank in einer Combobox anzeigen. Ich kann lediglich den Inhalt der Tabelle aus der Datenbank ausgeben.
Sprich: Datenbankname = TankManager in der sind Tabellen wie tbl_2014, tbl_2015, tbl_2016 usw. und in diesen Tabellen sind die Spalten. Ich kann bis jetzt nur den Inhalt der Spalten der besagten Tabelle in der Combobox ausgeben.
Ist es möglich den Inhalt des Datenbanknamens >>> sprich tbl_2014, tbl_2015 usw. in der Combobox auszugeben?
Hier mein Code:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    	Try
        	conn.ConnectionString = myConnectionString
        	Dim table As New DataTable
        	Dim da As New MySqlDataAdapter("SELECT * FROM tbl_2014", conn)

        	da.Fill(table)

        	ComboBox1.DataSource = New BindingSource(table, Nothing)
        	ComboBox1.DisplayMember = "id"

    	Catch ex As MySql.Data.MySqlClient.MySqlException
    	End Try

Bei diesem Code werden alle 'id' Werte von 'tbl_2014' in der Combobox angezeigtIch möchte aber das es mir den Inhalt von 'TankManager' anzeigt.
Gib es da eine möglichkeit?
Besten Dank
Gruß Gebhard
0

Anzeige



#2 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 13. September 2018 - 05:40

SHOW TABLES FROM database

Es wäre für dich auch sehr hilfreich wenn du mal Google aufrufst und etwas über

- strukturierte Programmierung
- Programmcode strukturieren

liest.

Und das hier: Das Fünfsekundenexperiment: Guter Code, schlechter Code

Dieser Beitrag wurde von Gispelmob bearbeitet: 13. September 2018 - 05:43

AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#3 Mitglied ist offline   Typhoon76 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 29. August 18
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Lustenau

geschrieben 13. September 2018 - 14:08

Hallo Gispelmob
Danke für den Tipp und die Info für 'strukturierte Programmierung'Leider sieht das Ergebnis mit folgendem Code so aus:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    	Try
        	conn.ConnectionString = myConnectionString
        	Dim table As New DataTable
        	Dim da As New MySqlDataAdapter("SHOW TABLES FROM TankManager", conn)

        	da.Fill(table)

        	ComboBox1.DataSource = New BindingSource(table, Nothing)

    	Catch ex As MySql.Data.MySqlClient.MySqlException
    	End Try

Eingefügtes Bild
Sollte hier nicht tbl_2014, tbl_2015 usw. stehen?
Eingefügtes Bild
Gruß Gebhard
0

#4 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 14. September 2018 - 08:02

Das ist auch normal, denn die Tabelle die von der Abfrage ausgebeben wird heisst "Tables_in_TankManager" und die musst du noch als Anzeigewert zuweisen. Wenn du einfach nur den Rückgabewert der ComboBox zuweist, dann zeigt es das als Arrayeinträge an.

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        'Open connection
        ConnectDatabase()

        Try

            Dim da As New MySqlDataAdapter("SHOW TABLES FROM TankManager;", con)
            Dim dt As New DataTable

            da.Fill(dt)

            If dt.Rows.Count > 0 Then
                ComboBox1.DataSource = dt
                ComboBox1.DisplayMember = "Tables_in_TankManager"
            End If

        Catch myerror As MySqlException

            MessageBox.Show("Error : " & myerror.Message)

        End Try

        'Close connection
        DisconnectDatabase()

    End Sub



Um tbl_informationen nicht mit anzeigen zu lassen, muss der query String geändert werden:

SHOW TABLES FROM TankManager WHERE NOT Tables_in_TankManager = 'tbl_informationen';


Dieser Beitrag wurde von Gispelmob bearbeitet: 14. September 2018 - 08:12

AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0