Bonjour,

Je réalise une appli qui se connecte à une BD access.
Je créé une connexion que j'ouvre au lancement de l'appli.

Voici le code la classe qui gère l'accès à la BD:

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
41
42
 class dbConnect
    {
        OleDbConnection sscaCnx;
        String chaineCnx = "provider = microsoft.jet.oledb.4.0 ; data source = ssca.mdb";
 
        public dbConnect()
        {
            try
            {
                //Création de la connexion
                sscaCnx = new OleDbConnection(chaineCnx);
            }
            catch (OleDbException e)
            {
                MessageBox.Show("Erreur ACCESS:\n" + e.Message, "Erreur de connexion à la base de données", MessageBoxButtons.OK, MessageBoxIcon.Error);
            } 
        }
 
        //Méthode permettant d'exécuter une requête qui
        //ne renvoie pas de résultat (INSERT, UPDATE, DELETE)
        public bool executeQuery(String rqt)
        {
            try
            {
                //Ouverture de la connexion
                sscaCnx.Open();
 
                //exécution de la requête
                OleDbCommand cmd = new OleDbCommand(rqt, sscaCnx);
                cmd.ExecuteNonQuery();
 
                //Fermeture de la connexion
                sscaCnx.Close();
                return true;
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Erreur d'exécution d'une requête");
                return false;
            }
        }
	}
Ensuite à partir d'une autre classe, j'appelle la méthode qui execute la requete:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
myConnection = new dbConnect();
 
            String maRqt = "Insert into membres values ('4', 'LeNom', 'LePrenom', '15.12.1895', '3', '40');";
            bool Ok = myConnection.executeQuery(maRqt);
            if (Ok)
                Console.Beep();
Ma BD contient les champs suivants:
id, id_famille, nom, prenom, naissance, status, cotisation
Le champ id est auto-incrémente

Lorsque j'écris la requete comme indiqué au-dessus, il me dit qu'il manque un champ (6 au lieu de 7)

Si j'écris la requete suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
String maRqt = "Insert into membres values ('0', '4', 'LeNom', 'LePrenom', '15.12.1895', '3', '40');";
Ca marche (il y a le beep de la console), mais dans ma table, je n'ai pas le nouveau tuple que je viens d'inserer

Qqun a-t-il une idée du problème?

Merci d'avance pour votre aide