[英]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.