Python не могу исключить SQL заявление, сделанное из опционного меню - PullRequest
0 голосов
/ 28 марта 2020
"""
Methode die das gesamte Menue realisiert
"""
def menueFrame():

window = tk.Tk()
window.geometry('800x600')
window.title('Auswahl der Schwerpunkte') 

db.connect()

schwerpunkte_neu = []
schwerpunkte_neu = db.getSchwerpunkte()


# Definiere die Variablen für die Schwerpunkte je DropDown Menue
variable1 = tk.StringVar(window, value='- select -')
variable2 = tk.StringVar(window, value='- select -')
variable3 = tk.StringVar(window, value='- select -')
variable4 = tk.StringVar(window, value='- select -')
variable5 = tk.StringVar(window, value='- select -')

# Label welches die Begrüßung enthält
greetings = tk.Label(window, text='Dies ist das Auswahlmenue fuer Ihr Praktikum. Wählen Sie nach die Schwerpunkte, die Sie von Ihrem Praktikum erwarten \n ')
greetings.pack()

# Hier werden die Schwerpunkte aus der Methode geholt
variable1.set(schwerpunkte_neu[0])
#print(schwerpunkte_neu)
variable2.set(schwerpunkte_neu[0])
variable3.set(schwerpunkte_neu[0])
variable4.set(schwerpunkte_neu[0])
variable5.set(schwerpunkte_neu[0])


# Auswahlmenue der ersten Eingenschaft
matrikel = tk.Label(window, text='Bitte Ihre Matrikelnummer einegeben: ')
e0_matrikel = tk.Entry(window)
matrikel.pack()
e0_matrikel.pack()


e1_label = tk.Label(window, text='Bitte wählen Sie einen Schwerpunkt aus:')
e1_label.pack()

dDe1 = tk.OptionMenu(window, variable1, *schwerpunkte_neu)
dDe1.pack()


# Auswahlmenue der zweiten Eingenschaft
e2_label = tk.Label(window, text='Bitte wählen Sie einen Schwerpunkt aus:')
e2_label.pack()


dDe2 = tk.OptionMenu(window, variable2, *schwerpunkte_neu)
dDe2.pack()

# Auswahlmenue der dritten Eingenschaft
e3_label = tk.Label(window, text='Bitte wählen Sie einen Schwerpunkt aus:')
e3_label.pack()


dDe3 = tk.OptionMenu(window, variable3, *schwerpunkte_neu)
dDe3.pack()

# Auswahlmenue der vierten Eingenschaft
e4_label = tk.Label(window, text='Bitte wählen Sie einen Schwerpunkt aus:')
e4_label.pack()

dDe4 = tk.OptionMenu(window, variable4, *schwerpunkte_neu)
dDe4.pack()


# Auswahlmenue der fuenften Eingenschaft
e5_label = tk.Label(window, text='Bitte wählen Sie einen Schwerpunkt aus:')
e5_label.pack()

dDe5 = tk.OptionMenu(window, variable5, *schwerpunkte_neu)
dDe5.pack()


# Button zum Senden des SQL-Query
submit = tk.Button(text='Submit', fg='green',command=lambda : db.sendInfo(e0_matrikel.get(),variable1.get(),variable2.get(),variable3.get(),variable4.get(),variable5.get()))
submit.pack()    
# Button um die mainloop zu verlassen - beendet nicht das gesamte programm
close = tk.Button(text='Weiter', fg='red', command= window.destroy)
close.pack()

window.mainloop()

#
# Schritt zwei des Algorithmus
window = tk.Tk()
window.geometry('800x600')
window.title('Auswahl der Schwerpunkte - Ihr Ergebnis')


# Label welches die Begrüßung enthält
greetings = tk.Label(window, text='Auf Grundlage Ihrer Angaben, ist eine folgende Deckung ermittelt worden: \n ')
greetings.pack()

compared = tk.StringVar()
ergebnis = tk.Button(text='Ergebnis anzeigen', fg = 'green', command = lambda : db.compare(variable1.get(),variable2.get(),variable3.get(),variable4.get(),variable5.get()))
ergebnis.pack()

#result = tk.Message(window, text= str(db.compare(variable1.get(),variable2.get(),variable3.get(),variable4.get(),variable5.get() )))
#result.pack()


ende = tk.Button(text='Beenden', fg='red', command=window.destroy)
ende.pack()
window.mainloop()

Часть вторая

    def getSchwerpunkte():
"""
Mit dieser Methode sollen alle SQL-Befehle die mit SELECT zusammenhaengen durchgefuehrt werden
"""
liste = []

with mycurser as cursor:
    sql1 = "SELECT * FROM schwerpunkte" 

    try:
        cursor.execute(sql1)

        result = cursor.fetchall()
        liste = [row[0] for row in result]

            #liste.append(row[0])


            #print(liste)
    except:
            print("Oops! Something wrong")
connection.commit()




return liste


    def sendInfo(matNr,pick1,pick2,pick3,pick4,pick5):    
with mycurser as cursor:
    sql = "INSERT INTO student(MatrikelNr,Schwerpunkt1,Schwerpunkt2,Schwerpunkt3,Schwerpunkt4,Schwerpunkt5) VALUES (%s,%s,%s,%s,%s,%s)" 
    val = (matNr ,pick1 ,pick2 ,pick3 ,pick4,pick5)


    try:


        cursor.execute(sql,val)

            #result = cursor.fetchall()


    except:
            print("Oops! Something wrong (sendInfo)" ,)

connection.commit()

'' '

Итак, работая с python, мы хотели создать список из базы данных, то есть метод getSchwerpunkte () , Раньше мы использовали словарь, но хотели, чтобы он был более динамичным c. Хотя это работает, sendInfo больше не работает, это было раньше. опциональное меню также показывает ошибку:

'Нет значения для аргумента' значение 'в вызове конструктора'

наше GUI работает, но если мы хотим передать, оно не будет приводить к исключению запрос.

Любая идея, где нам не хватает?

заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...