Olá pessoas. Estou criando um programinha pra administrar licenças de softwares aqui no trabalho, e travei em uma parte.
Na tela inicial do programa eu quero uma TreeView listando os Softwares, e os nodes de cada software, suas versões.
Exemplo:
Adobe Photoshop
- CS5
- CS6
Depois disso o intúito é que quando eu clique duas vezes na versão, abra uma tabelinha das licenças que estão alocadas com este software e esta versão.
Consegui fazer listar os Softwares na TreeView, mas não sei como aplicar os nodes da tabela de versões, que é uma tabela a parte no MySQL que usa relacionamento a partir do ID dos Softwares:
Alguém pra dar uma ajudinha aí?
PS: Eu estava tentando entender como funcionava o TableAdapter, então utilizei isso pra popular a TreeView, mas deixei o código de como seria do jeito normal também.
Tabelas MySQL:
Código do Form:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace OdinSWLManager
{
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();
        }
        private void Main_Shown(object sender, EventArgs e)
        {
            // ~*~*~* - Metódo 1 com Conexão e SQL Query no código. - *~*~*~ //
            /*
            string connString = "Server=D005m21832.metroweb.sp.gov.br;Port=3306;Database=odinswlmanager;Uid=Odin;password=odinsoftwaresgti123";
            MySqlConnection conn = new MySqlConnection(connString);
            try
            {
                conn.Open();
                string sql = "SELECT * FROM softwares";
                try
                {
                    DataSet ds = new DataSet();
                    MySqlDataAdapter msda = new MySqlDataAdapter(sql, conn);
                    DataTable dt = new DataTable();
                    msda.Fill(ds);
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        TreeNode node = new TreeNode(dr["nome_sof"].ToString());
                        treeView.Nodes.Add(node);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Falha ao carregar os dados.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            */
            // ~*~*~* - Metódo 2 com TableAdapter ( Método mais simples ). - *~*~*~ //
            try
            {
                AppDataTableAdapters.softwaresTableAdapter soft = new AppDataTableAdapters.softwaresTableAdapter();
                AppData.softwaresDataTable dt = soft.SoftwaresMain();
                soft.Fill(dt);
                foreach (DataRow dr in dt.Rows)
                {
                    TreeNode node = new TreeNode(dr["nome_sof"].ToString());
                    treeView.Nodes.Add(node);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Falha ao carregar os dados.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}
Acredito que na parte do TableAdapter vou ter que fazer algo assim para buscar os dados de versões também:
AppDataTableAdapters.softwaresTableAdapter soft = new AppDataTableAdapters.softwaresTableAdapter();
AppData.softwaresDataTable dt = soft.SoftwaresMain();
soft.Fill(dt);
AppDataTableAdapters.versoesTableAdapter vers = new AppDataTableAdapters.versoesTableAdapter();
AppData.versoesDataTable dt2 = vers.VersoesMain();
vers.Fill(dt2);
Mas daqui não sei mais como prosseguir, alguma ajuda?
Obrigado!!!