• User

    Selezionare un valore di una tabella MySQL da una dropdown list

    Salve, tutte le dropdown list dipendono da un database, vorrei che selezionando un valore di una dropdown list, in un'altra venisse visualizzato solamente un valore anzi che tutti:

    
    string mysqlConnectionString = "server = localhost; user id = root; database = prev; password = ";
                using (MySqlConnection connection = new MySqlConnection(mysqlConnectionString))
                {
                    MySqlDataAdapter adp_01 = new MySqlDataAdapter("SELECT id, nome FROM bf", connection);
                    DataTable dt_01 = new DataTable();
                    adp_01.Fill(dt_01);
    
    
                    MySqlDataAdapter adp_02 = new MySqlDataAdapter("SELECT id, nome FROM bg", connection);
                    DataTable dt_02 = new DataTable();
                    adp_02.Fill(dt_02);
    
    
                    MySqlDataAdapter adp_03 = new MySqlDataAdapter("SELECT id, nome FROM bgg", connection);
                    DataTable dt_03 = new DataTable();
                    adp_03.Fill(dt_03);
    
    
                    MySqlDataAdapter adp_04 = new MySqlDataAdapter("SELECT id, nome FROM br", connection);
                    DataTable dt_04 = new DataTable();
                    adp_04.Fill(dt_04);
    
    
                    MySqlDataAdapter adp_05 = new MySqlDataAdapter("SELECT id, nome FROM bm", connection);
                    DataTable dt_05 = new DataTable();
                    adp_05.Fill(dt_05);
    
    
                    MySqlDataAdapter adp_06 = new MySqlDataAdapter("SELECT id, nome FROM ba", connection);
                    DataTable dt_06 = new DataTable();
                    adp_06.Fill(dt_06);
    
    
                    MySqlDataAdapter adp_07 = new MySqlDataAdapter("SELECT id, nome FROM bf", connection);
                    DataTable dt_07 = new DataTable();
                    adp_07.Fill(dt_07);
    
    
                    MySqlDataAdapter adp_08 = new MySqlDataAdapter("SELECT id, nome FROM bp", connection);
                    DataTable dt_08 = new DataTable();
                    adp_08.Fill(dt_08);
    
    
                    MySqlDataAdapter adp_09 = new MySqlDataAdapter("SELECT id, nome FROM bc", connection);
                    DataTable dt_09 = new DataTable();
                    adp_09.Fill(dt_09);
    
    
                    MySqlDataAdapter adp_10 = new MySqlDataAdapter("SELECT id, nome FROM bfp", connection);
                    DataTable dt_10 = new DataTable();
                    adp_10.Fill(dt_10);
    
    
                    MySqlDataAdapter adp_11 = new MySqlDataAdapter("SELECT id, nome FROM bcl", connection);
                    DataTable dt_11 = new DataTable();
                    adp_11.Fill(dt_11);
    
    
                    MySqlDataAdapter adp_12 = new MySqlDataAdapter("SELECT id, nome FROM bsr", connection);
                    DataTable dt_12 = new DataTable();
                    adp_12.Fill(dt_12);
    
    
                    if (dt_01.Rows.Count > 0)
                    {
                        Formato.DataSource = dt_01;
                        Formato.DataTextField = "nome";
                        Formato.DataValueField = "id";
                        Formato.DataBind();
                    }
    
    
                    if (dt_02.Rows.Count > 0)
                    {
                        Quantità.DataSource = dt_02;
                        Quantità.DataTextField = "nome";
                        Quantità.DataValueField = "id";
                        Quantità.DataBind();
                    }
    
    
                    if (dt_03.Rows.Count > 0)
                    {
                        Gr_Carta.DataSource = dt_03;
                        Gr_Carta.DataTextField = "nome";
                        Gr_Carta.DataValueField = "id";
                        Gr_Carta.DataBind();
                    }
    
    
                    if (dt_04.Rows.Count > 0)
                    {
                        Rinforzo_Fondo.DataSource = dt_04;
                        Rinforzo_Fondo.DataTextField = "nome";
                        Rinforzo_Fondo.DataValueField = "id";
                        Rinforzo_Fondo.DataBind();
                    }
    
    
                    if (dt_05.Rows.Count > 0)
                    {
                        Manico.DataSource = dt_05;
                        Manico.DataTextField = "nome";
                        Manico.DataValueField = "id";
                        Manico.DataBind();
                    }
    
    
                    if (dt_06.Rows.Count > 0)
                    {
                        Applicazione.DataSource = dt_06;
                        Applicazione.DataTextField = "nome";
                        Applicazione.DataValueField = "id";
                        Applicazione.DataBind();
                    }
    
    
                    if (dt_07.Rows.Count > 0)
                    {
                        Finiture.DataSource = dt_07;
                        Finiture.DataTextField = "nome";
                        Finiture.DataValueField = "id";
                        Finiture.DataBind();
                    }
    
    
                    if (dt_08.Rows.Count > 0)
                    {
                        Plastificazione.DataSource = dt_08;
                        Plastificazione.DataTextField = "nome";
                        Plastificazione.DataValueField = "id";
                        Plastificazione.DataBind();
                    }
    
    
                    if (dt_09.Rows.Count > 0)
                    {
                        Colori_Stampa.DataSource = dt_09;
                        Colori_Stampa.DataTextField = "nome";
                        Colori_Stampa.DataValueField = "id";
                        Colori_Stampa.DataBind();
                    }
    
    
                    if (dt_10.Rows.Count > 0)
                    {
                        F_P.DataSource = dt_10;
                        F_P.DataTextField = "nome";
                        F_P.DataValueField = "id";
                        F_P.DataBind();
                    }
    
    
                    if (dt_11.Rows.Count > 0)
                    {
                        Caldo.DataSource = dt_11;
                        Caldo.DataTextField = "nome";
                        Caldo.DataValueField = "id";
                        Caldo.DataBind();
                    }
    
    
                    if (dt_12.Rows.Count > 0)
                    {
                        Rilievo_Stampa.DataSource = dt_12;
                        Rilievo_Stampa.DataTextField = "nome";
                        Rilievo_Stampa.DataValueField = "id";
                        Rilievo_Stampa.DataBind();
                    }
                    
                    int selectedIndex_08 = Manico.SelectedIndex;
    
    
                    if (selectedIndex_08 == 2 || selectedIndex_08 == 3 || selectedIndex_08 == 4)
                    {
                        Applicazione.DataTextField = "Seleziona";
                    }
                }
    
    

  • Moderatore

    Fammi capire, hai una serie di dropdown che prelevano il loro contenuto dal DB.

    Alcune di queste liste contengono un riferimento ai dati di un'altra lista, come nelle categorie e sotto-categorie?

    Esempio: Ho una lista con le Regioni ed una con le Provincie... Se seleziono "Valle d'Aosta" nella prima, la seconda dovrebbe "fillarsi" solo con "Aosta" e non con tutte le provincie...

    Se stai cercando di realizzare questo, innanzitutto nelle tabelle devi inserire anche il riferimento alla lista padre, e quando esegui la query per la lista figlio devi filtrare anche per il riferimento al padre...

    Intendi questo o sono fuori strada?


  • User

    Si esatto, però vorrei che, selezionando un item in una dropdown, un'altra dropdown dovrebbe azzerare tutti i campi lasciando solo il campo seleziona.
    Ho dunque 2 tabelle:

    1. Dorpdown di selezione: id 2 / 3 / 4;
    2. Dropdown condizionata: deve rimanere id 1.

    Non credo di aver capito bene cosa tu mi abbia consigliato di fare :tongueout: