为什么我更新表的代码不起作用?

2024-10-03 09:07:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一段代码负责管理一个使用tkinter和sqlite的python库。当您单击表中的任何记录时,它会打开一个屏幕,您可以在其中编辑或删除记录,其中的字段将自动填充值​​从表上单击的值中获取,但当您按下编辑按钮时,注册表不会更改

我尝试过不同的方法(格式化字符串等),但无论如何都不行

附言:它通常会添加书籍

负责编辑来自表格的值的代码:

def editar_livro(self, id_livro, titulo, autor, editora, n_pages, proprietario):
        self.__cursor.execute('''
        UPDATE livros
        SET (titulo_livro, autor_livro, editora_livro, paginas_livro, proprietario_livro) = (?, ?, ?, ?, ?)
        WHERE id_livro = ?
        ''', (titulo, autor, editora, n_pages, proprietario, id_livro))

        self.__connection.commit()

负责从表中获取值并调用上述代码的代码:

def editar_livro():
    livro_selecionado = tabela_livros.item(tabela_livros.focus())['values']

    id_livro = livro_selecionado[0]
    titulo = livro_selecionado[1]
    autor = livro_selecionado[2]
    editora = livro_selecionado[3]
    n_pages = livro_selecionado[4]
    proprietario = livro_selecionado[5]

    print(id_livro, type(id_livro))

    data_base.editar_livro(id_livro, titulo, autor,
                           editora, n_pages, proprietario)

    carrega_tabelas()

    editar_excluir_livro.pack_forget()

    botoes_editar_excluir_livro.pack_forget()

    table_frame['text'] = 'Livros'

    tabela_livros.pack(
        expand=True,
        fill=BOTH,
        padx=10,
        pady=10
    )

Tags: 代码selfid编辑pagespacktituloselecionado