Risolto riempire tab control da mysql

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
Buongiorno a tutti, ho un problema che non riesco a trovare, io ho una TabContlol e un DB con 2 tabelle: reparto e oggetto; leggendo il db, mi deve creare nel tabcontrol le tab page per gli elementi presenti nella tabella reparto, e per ogni tabpage, mi deve creare un pulsante per ogni oggetto che sta nella tabella oggetto nel reparto corrispondente.


tabella reparto
id| descrizione
--|------------
1 |reparto1
2 |reparto2
3 |reparto3

tabella oggetto
id | descrizione | reparto
----|---------------|---------------
1 |oggetto1 |reparto2
2 |oggetto2 |reparto3
3 |oggetto3 |reparto2
4 |oggetto4 |reparto1
5 |oggetto5 |reparto2


tabcontrol1 ha 3 tabpage: reparto1, reparto2, reparto3
reparto1 ha 1 pulsante nome oggetto4
reparto2 ha 3 pulsanti nome oggetto1,oggetto3,oggetto5
reparto3 ha 1 pulsante nome oggetto2


La prima parte, con la creaziione delle tab page funziona, ma la creazione dei pulsanti no.

Codice:
Private Sub Reparti()
        MysqlConn = New MySqlConnection
        MysqlConn.ConnectionString =
            "server=.......;userid=.......;password=......;database=db"
        Dim SDA As New MySqlDataAdapter
        Dim dbDataSet_2 As New DataTable
        Dim bSource As New BindingSource
        Try
            MysqlConn.Open()
            Dim Query As String
            Query = "Select id,descrizione from db.reparto"
            COMMAND = New MySqlCommand(Query, MysqlConn)
            READER = COMMAND.ExecuteReader
            While READER.Read
                Dim Descrizione = READER.GetString("descrizione")
                TabControl1.TabPages.Add(Descrizione)
            End While
            MysqlConn.Close()
        Catch ex As MySqlException
            MessageBox.Show(ex.Message)
        Finally
            MysqlConn.Dispose()
        End Try
        Prodotti()
    End Sub

 Private Sub oggetti()
        MysqlConn = New MySqlConnection
        MysqlConn.ConnectionString =
            "server=.......;userid=.......;password=......;database=db"
        Dim SDA As New MySqlDataAdapter
        Dim dbDataSet As New DataTable
        Dim bSource As New BindingSource
        Try
            MysqlConn.Open()
            Dim Query As String
            Query = "Select reparto,descrizione from db.oggetti"
            COMMAND = New MySqlCommand(Query, MysqlConn)
            READER = COMMAND.ExecuteReader
            Me.TabControl1.SelectedIndex = 0
            Do
                While READER.Read
                    Dim Descrizione = READER.GetString("descrizione")
                    Me.TabControl1.SelectedTab.Controls.Add(New Button())
                End While
                Me.TabControl1.SelectedIndex = Me.TabControl1.SelectedIndex + 1
            Loop Until Len(Me.TabControl1.SelectedIndex)
            MysqlConn.Close()
        Catch ex As MySqlException
            MessageBox.Show(ex.Message)
        Finally
            MysqlConn.Dispose()
        End Try
    End Sub

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

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
Ho provato a fare in questo modo:
Codice:
 Private Sub Oggetto()
        MysqlConn = New MySqlConnection
        MysqlConn.ConnectionString =
            "server=;userid=;password=;database="
        Dim SDA As New MySqlDataAdapter
        Dim dbDataSet As New DataTable
        Dim bSource As New BindingSource
        TabControl1.TabIndex = 1
        Try
            MysqlConn.Open()
            Dim Query As String
            Query = "[LEFT][COLOR=#333333][FONT=monospace]Select reparto,descrizione from db.oggetti[/FONT][/COLOR][/LEFT]"
            COMMAND = New MySqlCommand(Query, MysqlConn)
            READER = COMMAND.ExecuteReader
            If READER.GetString("reparto") = TabControl1.Name Then
                While READER.Read
                    Dim Descrizione = READER.GetString("descrizione")
                    TabControl1.SelectedTab.Controls.Add(New Button())
                End While
            End If
            MysqlConn.Close()
        Catch ex As MySqlException
            MessageBox.Show(ex.Message)
        Finally
            MysqlConn.Dispose()
        End Try
    End Sub
Ma ancora nessuna soluzione, posso provare a chiedere su un altro forum?
 

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
20.197
1.733
Como
2011MAC 2016WIN
413
Ok, chiedi pure su altri forum, nel caso trovi la soluzione facci sapere.
 

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
certo, secondo me sta tutto nel confrontare il nome della tabPage, con la colonna reparto della tabella del db. Se è uguale, stampami un bottone con il testo uguale all'oggetto sotto la colonna descrizione. Ma quel confronto non riesco a farlo
 

patel

Utente assiduo
25 Marzo 2016
1.348
38
74
Livorno
2010
1
se puoi allega il progetto compreso il db (se è locale) e possiamo fare qualche test
 

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
fatto, bisogna leggere riga per riga il DB e poi inserire
dim Page As TabPage
TabControl1.TabPages.Add(Page)
e poi successivamente anche il pulsante con lo stesso comando
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!