Guten abend
ich würde gerne eine Kombobox anhand von einer liste welche durch eine SQL abfrage entsteht füllen
def kombobox__personal_fuellen(self):
# SQL Abfrage aller daten
db.connect()
self.Box_personal.clear()
abfrage = "SELECT Personalnummer FROM mitarbeiter"
c.execute(abfrage)
while c.fetchall():
result = str(c.value(0))
self.Box_personal.addItem(result)
db.close()
komischerweise wirft es immer ein fehler das das attribute value nicht existiert. ändern zu fetchone bringt leider auch nichts
im internet find ich leider rein gar nichts dazu außer java halt
kombobox von SQL abfrage füllen
Das ist ja auch quatsch. Ein Cursor hat kein Attribut value. fetchall liefert auch nicht True/False, und updated irgendwie den Cursor mit der Zeile. Sondern macht, was es sagt: es holt alles ab, und gibt das zurueck.
Und das steht auch so im Internet. Siehe zB https://peps.python.org/pep-0249/, und sicher auch in der Dokumentation deines konkreten DB-Adapters.
Code: Alles auswählen
for row in c.fetchall():
print(row)
-
- User
- Beiträge: 30
- Registriert: Freitag 27. August 2021, 14:06
ah danke für die dokumentation die wird sicher weiterhelfen
dh es gibt einen tuple wieder wo ich mit einer zählerschleife jedes element hinzufügen kann
dh es gibt einen tuple wieder wo ich mit einer zählerschleife jedes element hinzufügen kann
-
- User
- Beiträge: 30
- Registriert: Freitag 27. August 2021, 14:06
def kombobox__personal_fuellen(self):
# SQL Abfrage aller daten
db.connect()
self.Box_personal.clear()
abfrage = "SELECT Personalnummer FROM mitarbeiter"
c.execute(abfrage)
for row in c.fetchall():
for wert in row:
self.Box_personal.addItem(str(wert))
db.close()
# SQL Abfrage aller daten
db.connect()
self.Box_personal.clear()
abfrage = "SELECT Personalnummer FROM mitarbeiter"
c.execute(abfrage)
for row in c.fetchall():
for wert in row:
self.Box_personal.addItem(str(wert))
db.close()
- __blackjack__
- User
- Beiträge: 13185
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
`db` und `c` kommen hier einfach so magisch aus dem ”Nichts”. Das sollte nicht sein. Keine globalen Variablen. Und auch lokal wäre `c` kein guter Name weil zu nichtssagend.
Die innere ``for``-Schleife ist falsch. Man schreibt keine Schleife wenn man weiss, dass die immer *genau einmal* durchlaufen wird. Das ist keine echte Schleife.
Die innere ``for``-Schleife ist falsch. Man schreibt keine Schleife wenn man weiss, dass die immer *genau einmal* durchlaufen wird. Das ist keine echte Schleife.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis