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

Signaler
Messages postés
122
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
30 juillet 2020
-
Messages postés
122
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
30 juillet 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
12329
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 septembre 2020
694
bonjour, il me semble qu'il faut commencer par faire un SELECT pour récupérer la donnée.
Messages postés
122
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
30 juillet 2020
1
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")
Messages postés
12329
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 septembre 2020
694
que veux-tu précisément récupérer?
Messages postés
122
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
30 juillet 2020
1
Je veux récupérer tous les noms du table user dans le combobox comme montre l'image ci-après:
Messages postés
12329
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 septembre 2020
694
suggestion:
xcon = sqlite3.connect("mabase.db")
xcur = xcon.cursor()
xcur.execute("select nom from user")
for ligne in xcur:
    self.combobox.addItem(ligne[0])
Messages postés
122
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
30 juillet 2020
1 >
Messages postés
12329
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 septembre 2020

Ça marche, merci beaucoup ;-)