Bonjour les Amis. Cela fait plus d'un mois que je crack sur un probleme de comboBox. En effet j'ai reçu a faire en remplissage automatique les Noms des marche dans mon combobox issu d'un autre formulaire. Voici comment j'ai remplir mon comboBox:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Fillcombo()
        {
 
            string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\\Stage_ap\\BD\\MontHoreb.accdb";
            conn.ConnectionString = connectionString;
            conn.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT Code_Marche, Libelle_Marche FROM MARCHE", conn);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            cmbCodeMaPh.DataSource = dt;
            cmbCodeMaPh.DisplayMember = "Libelle_Marche";
            cmbCodeMaPh.ValueMember = "Code_Marche";
            conn.Close();
        }

Cependant je veux enregistrer uniquement que la clé primaire des marches. D'abord j'ai crée une classe qui contient une Methode d'enregistrement et je l'appel en cas d'un enregistrement comme vous pouvez le voir ci-dessous:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//Methode pour Inserer des Donnees Dans la Base de Donnees
        public bool Insert(PhaseClasse c)
        {
            //Creation de valeur par defaut et le parametrer a faux
            bool isSuccess = false;
            //Connection a la Base de Donnee
            OleDbConnection conn = new OleDbConnection(myconnstrng);
            try
            {
                //Creation de requette pour Inserer des Donnees
                string sql = "INSERT INTO PHASE (Libelle_Phase, Code_Marche) VALUES (@Libelle_Phase, @Code_Marche)";
                //Creation de Commande Utilisant sql et conn
                OleDbCommand cmd = new OleDbCommand(sql, conn);
                //Creation de parameters pour ajouter des Donnees
                cmd.Parameters.AddWithValue("@Libelle_Phase", c.Libelle_Phase);
                cmd.Parameters.AddWithValue("@Code_Marche", c.Code_Marche);
 
                //Ouverture de la Connection
                conn.Open();
                int rows = cmd.ExecuteNonQuery();
                //Si la requette s'effectue avec succes la valeur de la ligne sera plus grande 0 sino cette valeur sera 0
                if (rows > 0)
                {
                    isSuccess = true;
                }
                else
                {
                    isSuccess = false;
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                //Fermeture de la Connection
                conn.Close();
            }
            return isSuccess;
Maintenant pour le Bouton Enregistrer voici comment j'ai procédé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
private void btnAjouterPh_Click(object sender, EventArgs e)
        {
 
            //Obtention des Donnees dans les Champs de Saisir
            c.Libelle_Phase = txtBoxLibPh.Text;
            c.Code_Marche =cmbCodeMaPh.SelectedValue;
 
            //Insertion des Donnees dans la Base de Donnees de Notre Application
            bool success =c.Insert(c);
            if (success == true)
            {
                //Insertion effectue avec succes
                MessageBox.Show("Votre Enregistrement a ete effectue avec succes.Merci");
                //Call the clear methode
                Clear();
            }
            else
            {
                //Enregistrement Non Effectue
                MessageBox.Show("Enregistrement non effectue. veuillez reprendre SVP!");
            }
            //Load Data on DataGridView
            DataTable dt = c.Select();
            dgvPhase.DataSource = dt;
 
        }
Cependant on me dit qu'il une erreur sur le SelectedValue.
Voici l'erreu: Impossible de convertir implicitement le type 'object' en 'int'. Une conversion explicite existe (un cast est-il manquant*?)

pour mieux illustrer cela voici un capture d'ecran que j'ai fait:

Nom : Dev.PNG
Affichages : 203
Taille : 27,1 Ko


S'il vous Plait aider moi!