Jun-20-2019, 10:55 AM
Добрый день помогите решить проблему редактирования данных в sqlite3.
Опишу проблему:
Вывожу данные из sql в приложение на python tkinter. Данные таблиц выводятся в поля entry.
Как возможно сделать редактирование entry c сохранением?
Не понимаю как получить entry, который хочу редактировать.
Буду благодарен любой помощи
Мой код:
Опишу проблему:
Вывожу данные из sql в приложение на python tkinter. Данные таблиц выводятся в поля entry.
Как возможно сделать редактирование entry c сохранением?
Не понимаю как получить entry, который хочу редактировать.
Буду благодарен любой помощи
Мой код:
#Функция создания кнопок. def But (): global nex, ins s = sel.get() list = root.grid_slaves(row =6) for l in list: l.destroy() nex = Button(command = Table) nex.grid(row = 7, column = 0, sticky = E, pady = 10, columnspan = 2) nex.config(text = "Показать следующие " + "значений >>") ins = Button(text = "Добавить запись", command = childl) ins.grid(row= 7, column = 3, sticky = E, pady = 10, columnspan = 2) zapis = Button(text="Сохранить", command = zapiss) zapis.place(x = 680, y = 90) Table() #Функция создания выбора количества строк def RB(event): global sel global nex sel = IntVar() se = Label(text = "Показать: ") se.place(x = 240, y = 45) enty = Entry(textvariable = sel) enty.place(x = 300, y = 45) fr = Button(text="Вывести", command = But, height = 2, width = 8) fr.place(x = 430, y = 35) #Функция очистки окна def clear (): list = root.grid_slaves() for l in list: l.destroy() #Функция закрытия окна def Close(): root.destroy() #Функция редактирования и сохранения данных. def zapiss(): b = r.get() print(all_table, b) #cursor.execute("INSERT INTO {} VALUES{}".format(all_table, b)) cursor.execute("UPDATE {} SET Телефон WHERE = 1;".format(all_table)) #Функция обозначения имени полей таблиц БД def Table(): global dsh s = int(sel.get()) for i in range(8,25): list = root.grid_slaves(row=i) for l in list: l.destroy() list = root.grid_slaves(row = 8) for l in list: l.destroy() table_name = var.get() der = cursor.execute("SELECT name FROM pragma_table_info(:table_name)", {"table_name": table_name}).fetchall() ciao = der w = 0 dsh=[] for i in ciao: if s==0: nex.grid_forget() ins.grid_forget() break counter = 0 for a in i: counter+=1 if counter >0 : stolb = Label(text = a, justify = CENTER) stolb.grid(row = 8, column = w, sticky= "w", pady = 10) w=w+1 dsh.append(stolb) Tablel() #Функция отображения данных таблицы def Tablel (): global r, all_table s = int(sel.get()) q = 0 z = 0 x = 10 all_table = var.get() cursor.execute('SELECT * FROM {}'.format(all_table)) print(all_table) rows = cursor.fetchall() for row in rows: y = 0 x = x+1 z = z+1 if s==0: messagebox.showinfo('СУБД',('Заполните поле')) break for ro in row: r = Entry() r.insert(0, ro) r.grid(row=x, column = y, sticky = "w", pady = 1) y = y+1 if s==z: break