cursor = self.conn.cursor()
cursor.execute("DELETE FROM employees WHERE id=?", (emp_id,))
self.conn.commit()
self.update_treeview()
self.last_action = "delete"
def search_employee(self):
name = simpledialog.askstring("Input", "Enter employee name:")
cursor = self.conn.cursor()
cursor.execute("SELECT * FROM employees WHERE name=?", (name,))
employees = cursor.fetchall()
if employees:
self.tree.delete(*self.tree.get_children())
for employee in employees:
self.tree.insert("", "end", values=employee)
else:
messagebox.showinfo("Info", "No employee found with the given name.")
def update_treeview(self):
#Очистка Treeview
for item in self.tree.get_children():
self.tree.delete(item)
cursor = self.conn.cursor()
cursor.execute("SELECT * FROM employees")
employees = cursor.fetchall()
for employee in employees:
self.tree.insert("", "end", values=employee)
def on_double_click(self, event):
item = self.tree.selection()[0]
employee_id = self.tree.item(item, "values")[0] # Получить ID сотрудника
messagebox.showinfo("Employee ID", f"Employee ID: {employee_id}")
def undo_action(self):
if self.last_action == "add":
messagebox.showinfo("Undo", "Undo Add Employee action")
#Реализую код, чтобы отменить действие добавления
elif self.last_action == "update":
messagebox.showinfo("Undo", "Undo Update Employee action")
#Реализую код, чтобы отменить действие обновления
elif self.last_action == "delete":
messagebox.showinfo("Undo", "Undo Delete Employee action")
#Реализую код, чтобы отменить действие удаления
else:
messagebox.showinfo("Undo", "No previous action to undo")
Фрагменты кода надо размещать в виде текста и оборачивать тэгом code для корректного отображения. Удобно делать кнопкой </> Это обязательно, см.п.3.8 Регламента.
Сюда же относится traceback, ввод и вывод в консоли и другая структурированная текстовая инфа.
def init(self, master): Вот здесь ты определил метод экземпляра класса init. А хотел переопределить конструктор экземпляра класса, то есть def __init__(self, master): Отсюда при попытке создания экземпляра класса app = ManageApp(root) он говорит что параметров быть не должно, потому что конструктор экземпляра класса остался пустым.
Хорошо, но отсюда вытекло
line 142
app = ManageApp(root)
^^^^^^^^^^^^^^^
line 11, in __init__
self.create_table()
line 27, in create_table
cursor.execute('''CREATE TABLE IF NOT EXSISTS employees (
sqlite3.OperationalError: near "EXSISTS": syntax error
Данил Белобрысов, Это уже другая ошибка не связанная с твоим вопросом, может быть у тебя их еще там десяток, здесь не исправляют код, а отвечают на вопрсы.
прочитай внимательно, как ты написал "EXSISTS" и посмотри как правильно пишется.