Récupérer la valeur d'un enregistrement sqlite dans un textbox en PyQt5 [Résolu]

Signaler
Messages postés
115
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
21 février 2020
-
rasielblas
Messages postés
115
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
21 février 2020
-
Bonjour,

J'aimerais savoir comment récupérer un enregistrement d'une base de donnée sqlite dans un combobox:

Voici mon code python:

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
import sqlite3
class Fenetre(QMainWindow):
        def __init__(self):
            super(Fenetre, self).__init__()
            self.setWindowTitle("Mon interface")
            self.setMinimumSize(100,200)
            self.setWindowIcon(QIcon("icon.png"))

            #Création du combobox:
            self.combobox=QComboBox(self)
            #self.combobox.addItem(self.requete())
            self.combobox.move(40,40)
            self.combobox.addItem("enregistrement à récupérer")



app=QApplication.instance()
if not app:
    app=QApplication(sys.argv)
fenetre=Fenetre()
fenetre.show()
app.exec_()



Est voici ma base:

    def requete(self):
            xcon = sqlite3.connect("mabase.db")
            xcur = xcon.cursor()
            xcur.execute("create table if not exists user(id integer,nom string(25))")
            xcur.execute("insert into user(id,nom) values(1,"Julien")")
            xcur.execute("insert into user(id,nom) values(2,"José")")
            xcur.execute("insert into user(id,nom) values(3,"Francois")")
            print(xcur.fetchall())
            liste=xcur.fetchall()
            xcon.commit()
            xcon.close()



Merci de votre aide.

3 réponses

Messages postés
9708
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020
534
bonjour, il me semble qu'il faut commencer par faire un SELECT pour récupérer la donnée.
Messages postés
115
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
21 février 2020

Merci de m'avoir répondu, bon on supposant que je fais un select:

def requete(self):
            xcon = sqlite3.connect("mabase.db")
            xcur = xcon.cursor()
            xcur.execute("select * from user")
            print(xcur.fetchall())
            liste=xcur.fetchall()
            xcon.commit()
            xcon.close()



Alors comment récupérer le résultat du selection dans le combobox?
ce que je veux c'est du genre:

self.combobox.addItem("résultat du selection")
yg_be
Messages postés
9708
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020
534
que veux-tu précisément récupérer?
Messages postés
115
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
21 février 2020

Je veux récupérer tous les noms du table user dans le combobox comme montre l'image ci-après:
yg_be
Messages postés
9708
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020
534
suggestion:
xcon = sqlite3.connect("mabase.db")
xcur = xcon.cursor()
xcur.execute("select nom from user")
for ligne in xcur:
    self.combobox.addItem(ligne[0])
rasielblas
Messages postés
115
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
21 février 2020
> yg_be
Messages postés
9708
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020

Ça marche, merci beaucoup ;-)