C# - mise en valeur de SelectedItem dans l'application Windows Forms

J'ai une simple application Windows Forms (avec une base de données Access) avec une zone de liste déroulante (cmbStores) qui est remplie de la façon la plus simple imaginable.

Problème: je ne suis pas en mesure d'obtenir la valeur de l'élément sélectionné.

Ici est la façon dont je suis le remplissage de cette zone de liste déroulante:

//Variable declaration
        string strQueryStores = "SELECT StoreNumber FROM tblStoresAndRegion ORDER BY StoreNumber";
        string strConnectionString = UtilityClass.GetConnectionString();
        OleDbConnection connStores;
        OleDbDataReader readerStores = null;

        connStores = new OleDbConnection(strConnectionString);

        try
        {
            connStores.Open();
            OleDbCommand sqlGetStores = new OleDbCommand(strQueryStores, connStores);

            cmbStore.Items.Clear();
            cmbStore.Items.Add("All");
            if (connStores != null)
            {
                readerStores = sqlGetStores.ExecuteReader();

                if (readerStores.HasRows)
                {
                    while (readerStores.Read())
                    {
                        cmbStore.Items.Add (Convert.ToInt32(readerStores["StoreNumber"]));
                    }
                }
            }
            cmbStore.SelectedIndex = 0;

        }

        catch (OleDbException oledblEX)
        {
            MessageBox.Show(oledblEX.Message);
        }

        finally
        {
            if (readerStores != null)
                readerStores.Close();
            if (connStores != null)
                connStores.Close();
        }

C'est de cette façon que je suis en train d'essayer d'obtenir la valeur de l'élément sélectionné.

int nStoreNumber = Convert.ToInt32(cmbABSM.SelectedItem);
Où est le code que vous utilisez pour obtenir l'élément sélectionné? Êtes-vous d'obtenir une exception? Valeur incorrecte? Ce qui se passe lorsque vous essayez d'obtenir les éléments sélectionnés?
Vous obtenez une certaine incohérence dans votre code. Vous remplissez le cmdStore boîte et essayez de lire le cmbABSM boîte. Est-ce vraiment le cas, ou vous avez simplement fait une faute de frappe?
J'ai fait une faute de frappe ici. Le code doit être de type int nStoreNumber = Convert.ToInt32(cmbStore.SelectedItem);
Résolu (mais toujours confondu) ... Lorsque j'utilise ce code, int nStoreNumber = Convert.ToInt32(cmbStore.Texte); ça fonctionne.

OriginalL'auteur KalC | 2012-04-25