Bonjour à tous. je bosse sur un petit projet pour le stockage des données de vente(Vêtement, Chaussure et Lingerie).
Le problème c'est que: lorsque je rentre les données dans la fenêtre d'insertion, ma QMessaBox me notifie bien que tous c'est bien passé. sauf que ma base de données reste toujours vide. je ne comprends pas ce qui se passe. Besoin d'aide svp.
voici le constructeur(.cpp) de la classe qui gère ca
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
43
44
45
46
47
 
Alimentation::Alimentation(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Alimentation)
{
    enum
    {
        ID_CIBLE = 0,
        TYPE_CIBLE = 1
    };
 
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setDatabaseName("Vente_test"); // base de données que nous venons de créer.
    db.setHostName("localhost");
    db.setUserName("");
    db.setPassword("");
    db.setPort(3306);
    db.open();
 
    model_v = new QSqlTableModel(this);
    model_c = new QSqlTableModel(this);
    model_l = new QSqlTableModel(this);
    ui->setupUi(this);
 
    //gestion des enregistrements
    int index = 0;
    index = ui->combo_type->currentIndex();
    if(index == 0)
    {
        modele_vetement();
        connect(ui->bouton_enregistrer, SIGNAL(clicked()), this, SLOT(alimenter_bd_v()));
    }
    else if(index == 1)
    {
        modele_chaussure();
        connect(ui->bouton_enregistrer, SIGNAL(clicked()), this, SLOT(alimenter_bd_c()));
    }
    else if(index == 2)
    {
        //modele_lingerie();
        connect(ui->bouton_enregistrer, SIGNAL(clicked()), this, SLOT(alimenter_bd_l()));
    }
 
 
    setFixedSize(770, 489);
    connect(ui->bouton_afficher, SIGNAL(clicked()), this, SLOT(afficher_gestion()));
}
et voici le slot alimenter_bd_v()
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
 
void Alimentation::alimenter_bd_l()
{
    enum
    {
        ID_L = 0,
        NOM_L = 1,
        MARQUE_L = 2,
        MODELE_L = 3,
        TAILLE_L = 4,
        MATIERE_L = 5,
        COULEUR_L = 6,
        PRIX_UNIT_L = 7,
        QUANTITE_L = 8,
        APERCU_L = 9,
        DESCRIPTION_L = 10
    };
 
    model_l->setTable("lingerie");
    //critère de tri
    model_l->setSort(NOM_L, Qt::AscendingOrder);
    //définition des entetes
    model_l->setHeaderData(NOM_L, Qt::Horizontal, "Nom");
    model_l->setHeaderData(MARQUE_L, Qt::Horizontal, "Marque");
    model_l->setHeaderData(MODELE_L, Qt::Horizontal, "Modèle");
    model_l->setHeaderData(TAILLE_L, Qt::Horizontal, "Taille");
    model_l->setHeaderData(MATIERE_L, Qt::Horizontal, "Matière");
    model_l->setHeaderData(COULEUR_L, Qt::Horizontal, "Couleur");
    model_l->setHeaderData(PRIX_UNIT_L, Qt::Horizontal, "Prix unit.");
    model_l->setHeaderData(QUANTITE_L, Qt::Horizontal, "Quantité");
    model_l->setHeaderData(APERCU_L, Qt::Horizontal, "Aperçu");
    model_l->setHeaderData(DESCRIPTION_L, Qt::Horizontal, "Description");
    model_l->select();
 
    QString nom_l = ui->champ_nom->text();
    QString marque_l = ui->champ_marque->text();
    QString model_l = ui->champ_modele->text();
    int taille_l = ui->champ_taille->value();
    QString matiere_l = ui->champ_matiere->text();
    QString couleur_l = ui->champ_couleur->text();
    double prix_unit_l = ui->champ_prix->value();
    int quantite_l = ui->champ_qte->value();
    QString apercu_l = ui->champ_apercu->text();
    QString description_l = ui->champ_description->toPlainText();
    QString cible_l = ui->combo_cible->currentText();
 
    while(nom_l.isEmpty() || marque_l.isEmpty() || model_l.isEmpty() ||
          matiere_l.isEmpty() || couleur_l.isEmpty() ||
            apercu_l.isEmpty() || description_l.isEmpty())
    {
        QMessageBox::warning(this, "Erreur: champ vide !", "Veuillez renseigner absolument tous les champs");
 
        return;
    }
 
    QString const req = "INSERT INTO lingerie (nom_lingerie, matiere_lingerie, modele_lingerie, quantite_lingerie, "
                  " description_lingerie, marque_lingerie, couleur_lingerie, taille_lingerie, "
                  "prix_unit_lingerie, apercu_lingerie, fk_cible) VALUES(:nom, :matiere, :modele, :quantite, :description, "
                  ":marque, :couleur, :taille, :prix_unit, :apercu, :fk_cible);";
 
    QSqlQuery requete;
    requete.prepare(req);
    requete.isActive();
 
    if(ui->combo_cible->currentText() == "Homme")
    {
        requete.bindValue(":nom", nom_l);
        requete.bindValue(":matiere", matiere_l);
        requete.bindValue(":modele", model_l);
        requete.bindValue(":quantite", quantite_l);
        requete.bindValue(":description", description_l);
        requete.bindValue(":marque", marque_l);
        requete.bindValue(":couleur", couleur_l);
        requete.bindValue(":taille", taille_l);
        requete.bindValue(":prix_unit", prix_unit_l);
        requete.bindValue(":apercu", apercu_l);
        requete.bindValue(":fk_cible", 1);
        requete.exec();
        clean_champ();
    }
    else if(ui->combo_cible->currentText() == "Femme")
    {
        requete.bindValue(":nom", nom_l);
        requete.bindValue(":matiere", matiere_l);
        requete.bindValue(":modele", model_l);
        requete.bindValue(":quantite", quantite_l);
        requete.bindValue(":description", description_l);
        requete.bindValue(":marque", marque_l);
        requete.bindValue(":couleur", couleur_l);
        requete.bindValue(":taille", taille_l);
        requete.bindValue(":prix_unit", prix_unit_l);
        requete.bindValue(":apercu", apercu_l);
        requete.bindValue(":fk_cible", 2);
        requete.exec();
        clean_champ();
    }
    else if(ui->combo_cible->currentText() == "Enfant")
    {
        requete.bindValue(":nom", nom_l);
        requete.bindValue(":matiere", matiere_l);
        requete.bindValue(":modele", model_l);
        requete.bindValue(":quantite", quantite_l);
        requete.bindValue(":description", description_l);
        requete.bindValue(":marque", marque_l);
        requete.bindValue(":couleur", couleur_l);
        requete.bindValue(":taille", taille_l);
        requete.bindValue(":prix_unit", prix_unit_l);
        requete.bindValue(":apercu", apercu_l);
        requete.bindValue(":fk_cible", 3);
        requete.exec();
        clean_champ();
    }
    requete.finish();
 
 
    QMessageBox::information(this, "Bravo !", "Les données sur <strong>" + nom_l + "</strong> ont bien été enregistré dans la"
                                                  " catégorie <strong>" + ui->combo_cible->currentText() + "</strong>");
 
 
}
ici je n'ai pris que le cas de l'enregistrement pour la lingerie.
Aidez moi svp. Merci d'avance