Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 滴答声=W) imierodzica_label=标签(根,text=“Imie rodzica”) imierodzica_label.grid(行=4,列=0,padx=10,pady=10,粘性=W) self.imierodzica_value=S_Python_Sql_Tkinter - Fatal编程技术网

Python 滴答声=W) imierodzica_label=标签(根,text=“Imie rodzica”) imierodzica_label.grid(行=4,列=0,padx=10,pady=10,粘性=W) self.imierodzica_value=S

Python 滴答声=W) imierodzica_label=标签(根,text=“Imie rodzica”) imierodzica_label.grid(行=4,列=0,padx=10,pady=10,粘性=W) self.imierodzica_value=S,python,sql,tkinter,Python,Sql,Tkinter,滴答声=W) imierodzica_label=标签(根,text=“Imie rodzica”) imierodzica_label.grid(行=4,列=0,padx=10,pady=10,粘性=W) self.imierodzica_value=StringVar(root,value=”“) self.imierodzica=ttk.Entry(根、, textvariable=self.imierodzica_值) self.imierodzica.grid(行=4,列=1,padx

滴答声=W) imierodzica_label=标签(根,text=“Imie rodzica”) imierodzica_label.grid(行=4,列=0,padx=10,pady=10,粘性=W) self.imierodzica_value=StringVar(root,value=”“) self.imierodzica=ttk.Entry(根、, textvariable=self.imierodzica_值) self.imierodzica.grid(行=4,列=1,padx=10,pady=10,粘性=W) self.submit_按钮=ttk.按钮(根,宽度=23, text=“Dodaj”, command=lambda:self.dodaj_student() self.submit_按钮网格(行=5,列=0,padx=10,pady=10,粘性=W) self.edit_button=ttk.button(根,宽度=23, text=“Edytuj”, command=lambda:self.update\u student() self.edit_button.grid(行=5,列=1,padx=10,pady=10,粘性=W) self.more_按钮=ttk.按钮(根,宽度=23, text=“Wiecej”, command=lambda:self.more\u student() self.more_按钮网格(行=6,列=0,padx=10,pady=10,粘性=W) self.delete_按钮=ttk.按钮(根,宽度=23, text=“uson”, command=lambda:self.delete\u student() self.delete_按钮网格(行=6,列=1,padx=10,pady=10,粘性=W) 滚动条=滚动条(根) self.list\u box=列表框(根) self.list\u box.bind(“”,self.load\u学生) 自我列表框。插入(1,“学生在此”) self.list_box.grid(行=7,列=0,列span=5,padx=10,pady=10,粘性=W+E) self.setup_db() self.update_listbox() root=Tk() studManager=StudentManager(根) root.mainloop()
您需要提供可测试的代码。你已经给了我们一节课,但不是我们需要测试的内容。请提供“那么我不能删除代替已删除学生的学生”-你为什么不能?当你尝试时会发生什么?请阅读我在上一篇评论中发布的链接。测试代码也没有缩进。@BryanOakley数据仍在列表框中。它不会消失,很难说它是否从数据库中删除,但肯定不会从列表框中删除。@SierraMountainTech感谢您的耐心,我将检查帖子并更正我的帖子
from tkinter import *
from tkinter import ttk
import sqlite3
from PIL import Image, ImageTk
import tkinter.filedialog

class StudentManager :
    db_conn = 0
    theCursor = 0
    curr_student = 0


    def setup_db(self):
        self.db_conn = sqlite3.connect('student.db')
        self.theCursor = self.db_conn.cursor()

        try:
            self.db_conn.execute("CREATE TABLE if not exists Students(ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, FName TEXT NOT NULL, LName TEXT NOT NULL, Telefon TEXT NOT NULL, Wiek TEXT NOT NULL, PName TEXT NOT NULL);")

            self.db_conn.commit()

        except sqlite3.OperationalError:
            print("ERROR : Table not created")


    def dodaj_student(self):
        self.db_conn.execute("INSERT INTO Students (FName, LName, Telefon, Wiek, PName)" +
                                                   "VALUES ('" +
                                                   self.imie_value.get() + "', '" +
                                                   self.nazwisko_value.get() + "', '" +
                                                   self.telefon_value.get() + "', '" +
                                                   self.wiek_value.get() + "', '" +
                                                  self.imierodzica_value.get() + "')")



        self.imie.delete(0, "end")
        self.nazwisko.delete(0, "end")
        self.telefon.delete(0, "end")
        self.wiek.delete(0, "end")
        self.imierodzica.delete(0, "end")

        self.update_listbox()

    def load_student(self, event=None):
        lb_widget = event.widget
        index = str(lb_widget.curselection()[0] + 1)  #????
        index2 = str(lb_widget.curselection()[0])
        self.curr_student = index
        self.curr_student2 = index2

        try:
            result = self.theCursor.execute("SELECT ID, FName, LName, Telefon, Wiek, PName FROM Students WHERE ID=" + index)

            for row in result:

                stud_id = row[0]
                stud_fname = row[1]
                stud_lname = row[2]
                stud_telefon = row[3]
                stud_wiek = row[4]
                stud_pname = row[5]

                self.imie_value.set(stud_fname)
                self.nazwisko_value.set(stud_lname)
                self.telefon_value.set(stud_telefon)
                self.wiek_value.set(stud_wiek)
                self.imierodzica_value.set(stud_pname)

        except sqlite3.OperationalError:
            print("The Table Doesn't Exist")

        except:
            print("2 : Couldn't Retrieve Data From Database")



    def update_listbox(self):

        self.list_box.delete(0, END)

        try:
            result = self.theCursor.execute("SELECT ID, FName, LName, Telefon, Wiek, PName FROM Students")

            for row in result:
                stud_id = row[0]
                stud_fname = row[1]
                stud_lname = row[2]
                stud_telefon = row[3]
                stud_wiek = row[4]
                stud_pname = row[5]

                self.list_box.insert(stud_id,
                                stud_fname + " " +
                                stud_lname + " " +
                                stud_telefon + " " +
                                stud_wiek + " " +
                                stud_pname)

        except sqlite3.OperationalError:
            print("The Table Doesn't Exist")

        except:
            print("1: Couldn't Retrieve Data From Database")


    def delete_student(self):

        try:
            self.db_conn.execute("DELETE FROM Students WHERE ID=" + self.curr_student)
            self.db_conn.commit()

        except sqlite3.OperationalError:
            print("Data couldn't be Deleted")

        self.imie.delete(0, "end")
        self.nazwisko.delete(0, "end")
        self.telefon.delete(0, "end")
        self.wiek.delete(0, "end")
        self.imierodzica.delete(0, "end")

        self.update_listbox()



    def __init__(self, root):

        self.window_is_open = False
        self.notatnik_window = False
        root.title("Student Manager")
        root.geometry("340x480")

        # ------ 1st Row ------
        imie_label = Label(root, text="Imie")
        imie_label.grid(row=0, column=0, padx=10, pady=10, sticky=W)

        self.imie_value = StringVar(root, value="")
        self.imie = ttk.Entry(root,
                                textvariable=self.imie_value)
        self.imie.grid(row=0, column=1, padx=10, pady=10, sticky=W)

        nazwisko_label = Label(root, text="Nazwisko")
        nazwisko_label.grid(row=1, column=0, padx=10, pady=10, sticky=W)

        self.nazwisko_value = StringVar(root, value="")
        self.nazwisko = ttk.Entry(root,
                                        textvariable=self.nazwisko_value)
        self.nazwisko.grid(row=1, column=1, padx=10, pady=10, sticky=W)

        telefon_label = Label(root, text="Telefon")
        telefon_label.grid(row=2, column=0, padx=10, pady=10, sticky=W)

        self.telefon_value = StringVar(root, value="")
        self.telefon = ttk.Entry(root,
                                textvariable=self.telefon_value)
        self.telefon.grid(row=2, column=1, padx=10, pady=10, sticky=W)

        wiek_label = Label(root, text="Wiek")
        wiek_label.grid(row=3, column=0, padx=10, pady=10, sticky=W)

        self.wiek_value = StringVar(root, value="")
        self.wiek = ttk.Entry(root,
                    textvariable=self.wiek_value)
        self.wiek.grid(row=3, column=1, padx=10, pady=10, sticky=W)

        imierodzica_label = Label(root, text="Imie rodzica")
        imierodzica_label.grid(row=4, column=0, padx=10, pady=10, sticky=W)

        self.imierodzica_value = StringVar(root, value="")
        self.imierodzica = ttk.Entry(root,
                                    textvariable=self.imierodzica_value)
        self.imierodzica.grid(row=4, column=1, padx=10, pady=10, sticky=W)


        self.submit_button = ttk.Button(root, width=23,
                                        text="Dodaj",
                                        command = lambda: self.dodaj_student())
        self.submit_button.grid(row=5, column=0, padx=10, pady=10, sticky=W)

        self.edit_button = ttk.Button(root, width=23,
                                        text="Edytuj",
                                        command = lambda: self.update_student())

        self.edit_button.grid(row=5, column=1, padx=10, pady=10, sticky=W)


        self.more_button = ttk.Button(root, width=23,
                                        text="Wiecej",
                                        command = lambda: self.more_student())
        self.more_button.grid(row=6, column=0, padx=10, pady=10, sticky=W)

        self.delete_button = ttk.Button(root, width=23,
                                        text="Usun",
                                        command = lambda: self.delete_student())
        self.delete_button.grid(row=6, column=1, padx=10, pady=10, sticky=W)

        scrollbar = Scrollbar(root)

        self.list_box = Listbox(root)
        self.list_box.bind('<<ListboxSelect>>', self.load_student)
        self.list_box.insert(1, "Students Here")
        self.list_box.grid(row=7, column=0, columnspan=5, padx=10, pady=10, sticky=W+E)



        self.setup_db()

        self.update_listbox()




root = Tk()
studManager = StudentManager(root)
root.mainloop()