Tkinter: Falsche Anordnung in my_tree nach Schließung der Anwendung
Verfasst: Mittwoch 7. Juni 2023, 15:34
Hallo, ich hab eine GUI in Tkinter mit DB, ich füge Daten in die my_tree Tabelle hinzu und dabei sind die richtig zu den Spalten zugeordnet. Wenn ich die Anwendung schließe und wieder öffne dann steht in der Spalte "lastname" nur noch ein Komma mit einfachen Anführungszeichen links und bei den anderen Spalten jeweils links von dem eingegeben Wort ebenfalls ein einfaches Anführungszeichen.
#build the create table query
if not table_exists:
query = f"CREATE TABLE {schema}.{table_name} ("
for column in columns:
column_name, data_type, constraints = column
query += f"{column_name} {data_type} {constraints}, "
query = query.rstrip(', ') + ")"
cursor.execute(query)
conn.commit()
print(f"Table '{table_name}' created succesfully.")
else:
print(f"Table '{table_name}' already exists.")
def add_data():
studid = studId_textbox.get()
fname = firstname_textbox.get()
lname = lastname_textbox.get()
adress = address_textbox.get()
if studid.strip() == "" or fname.strip() == "" or lname.strip() == "" or adress.strip() == "":
messagebox.showinfo("Error", "Please fill up all the fields!")
else:
try:
studid = int(studid)
query = f"INSERT INTO {table_name} (stud_id, firstname, lastname, adress) VALUES ( ?, ? ,? ,?) "
cursor.execute(query, (studid, fname , lname, adress))
conn.commit()
messagebox.showinfo("Data added succesfully!")
#insert data into my_tree
my_tree.insert("", "end" , values=(studid, fname, lname, adress))
except Exception as e:
messagebox.showinfo("Error", f"Failed to add data: {str(e)}")
def del_data():
select_data = my_tree.focus()
if select_data:
values = my_tree.item(select_data)['values']
stud_id = int(values[0])
query = f"DELETE FROM {table_name} WHERE stud_id = ?"
cursor.execute(query, (stud_id,))
conn.commit()
my_tree.delete(select_data)
def load_data():
query = f"SELECT stud_id, firstname, lastname, adress FROM {table_name}"
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
studid, fname, lname, adress = row
my_tree.insert("", "end", values=row)
#build the create table query
if not table_exists:
query = f"CREATE TABLE {schema}.{table_name} ("
for column in columns:
column_name, data_type, constraints = column
query += f"{column_name} {data_type} {constraints}, "
query = query.rstrip(', ') + ")"
cursor.execute(query)
conn.commit()
print(f"Table '{table_name}' created succesfully.")
else:
print(f"Table '{table_name}' already exists.")
def add_data():
studid = studId_textbox.get()
fname = firstname_textbox.get()
lname = lastname_textbox.get()
adress = address_textbox.get()
if studid.strip() == "" or fname.strip() == "" or lname.strip() == "" or adress.strip() == "":
messagebox.showinfo("Error", "Please fill up all the fields!")
else:
try:
studid = int(studid)
query = f"INSERT INTO {table_name} (stud_id, firstname, lastname, adress) VALUES ( ?, ? ,? ,?) "
cursor.execute(query, (studid, fname , lname, adress))
conn.commit()
messagebox.showinfo("Data added succesfully!")
#insert data into my_tree
my_tree.insert("", "end" , values=(studid, fname, lname, adress))
except Exception as e:
messagebox.showinfo("Error", f"Failed to add data: {str(e)}")
def del_data():
select_data = my_tree.focus()
if select_data:
values = my_tree.item(select_data)['values']
stud_id = int(values[0])
query = f"DELETE FROM {table_name} WHERE stud_id = ?"
cursor.execute(query, (stud_id,))
conn.commit()
my_tree.delete(select_data)
def load_data():
query = f"SELECT stud_id, firstname, lastname, adress FROM {table_name}"
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
studid, fname, lname, adress = row
my_tree.insert("", "end", values=row)