Je suis actuellement sur un projet de gestion de stock et ma part de travail est de concevoir une IHM graphique permettant a des employés d'un entrepot de s'authentifier, visualiser les produits stockés, ajouter des produits, faire des fiches de commandes... etc
Pour le moment j'ai juste concu le design des fenêtre avec des QLineEdit et des boutons s'inscrire, se connecter, valider...etc
Mais j'aimerais que les données que l'employé entre dans un QLineEdit se transmette dans la base de données et je ne sais pas comment faire.
Je pense avoir pu établir une connexion avec la base de donnée avec SQlite déja, une base de données en local que j'ai fait avec phpmyadmin.
Merci pour l'aide que vous m'apporterez.
- Edité par PiecesOfMagics 8 février 2016 à 17:24:28
Vous pouvez me montrer le code a mettre dans pour que quand je clique sur le bouton valider de ma fenetre FenAdd ca transmet les données des QlineEdit que l'utilisateur a rentrée dans la page?
J'ai essayé ca et je ne comprends pas pourquoi ca ne marche pas il ya aucune erreur de compilation mais il ya rien qui s'inscrit dans ma base de donnée lorsque je remplis mes QlineEdit et que je clique sur le bouton ajouter.Ma base de donnée est vide avec 7 colonne Id, NomProduit, MarqueProduit, FamilleProduit,Quantité,Prix,Description et Etat.
- Edité par PiecesOfMagics 9 février 2016 à 9:39:35
Pour une bdd sqlite, il faut donner un nom de fichier
// Diversifier le nom de connexion avec le thread ID par exemple.
// Un cast en unsigned int est peut être nécessaire sur std::this_thread::get_id()
// on se fout du résultat du cast, on ne l'utilisera jamais,
// l'idée c'est juste d'avoir un nom de connexion différent si on doit avoir plusieurs connexions.
auto db = QSqlDatabase::addDatabase("QSQLITE", QString{"MyDb%1"}.
arg( std::this_thread::get_id() ));
// mettre un chemin complet et pas seulement le nom du fichier
db.setDatabaseName("mydb.sqlite");
if (!db.open()){
// le catch eventuel pourra afficher ou logger le contenu de l'erreur
throw std::runtime_error{ db.lastError().text().toStdString()};
}
auto query = db.exec("select * from mytable where whatever");
while (query.next()){/*...*/}
Quelque chose comme ca?Après je ne comprends pas bien pour les requetes SQL.
#YHWH4EVER
J'ai essayé ca et je ne comprends pas pourquoi ca ne marche pas il ya aucune erreur de compilation mais il ya rien qui s'inscrit dans ma base de donnée lorsque je remplis mes QlineEdit et que je clique sur le bouton ajouter.Ma base de donnée est vide avec 7 colonne Id, NomProduit, MarqueProduit, FamilleProduit,Quantité,Prix,Description et Etat.