簡體   English   中英

如何在 Treeview Tkinter 中刷新 MySQL 數據?

[英]How to refresh MySQL data in Treeview Tkinter?

代碼

我有這個功能:

#Refresh MySQL data to Treeview
    def refresh(self):
        self.table.delete(*self.table.get_children())

        cursor = mydb.cursor()
        cursor.execute("select * from requested order by done")
        for row in cursor:
            self.table.insert('','end', values = (row[8], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[9], row[10], row[12]))

如果我插入一條記錄或更新一條記錄 - 使用工作台。 當我在 Tkinter 中按刷新時,它不顯示任何新的或修改過的數據。 保持原樣。

但是 - 如果我退出 Tkinter 應用程序 - 重新打開它 - 單擊refresh它將顯示新的修改數據。

如果 tkinter 應用程序正在運行 - 如果我嘗試運行以下查詢: truncate table using workbench - MySQL 不會完成查詢操作,直到我關閉 tkinter 應用程序

它應該做什么

當我激活函數refresh - 它應該刪除樹視圖中的所有當前數據並使用 MySQL 中的現有值更新它。

問題

我怎樣才能做到這一點?

來自@brunodesthuilliers鏈接的評論MySQL 事務隔離級別幫助我找到了問題所在!

通過在 MySQL Workbench 中運行此查詢:

SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;

允許我從 MySQL 更新記錄並在下面運行此功能 - 沒有問題!

#Refresh MySQL data to Treeview
    def refresh(self):
        self.table.delete(*self.table.get_children())

        cursor = mydb.cursor()
        cursor.execute("select * from requested order by done")
        for row in cursor:
            self.table.insert('','end', values = (row[8], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[9], row[10], row[12]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM