我试图使用 python 3.4 中的 tkinter 模块将 sql 查询的 2 个不同返回输出到 TreeView 小部件中的相应列当我运行下面定义的命令时,第一列正确打印所有条目,但名称列打印名称所有行中第一个结果的名称,而不是各行的名称。关于我做错了什么有什么想法吗?
def refreshtrade():
for i in treeview.get_children():
treeview.delete(i)
#order number
refreshtradein = conn.cursor()
refreshtradein.execute("SELECT increment_id FROM mg_ikantam_buyback_order")
#first name
names =conn.cursor()
names.execute("SELECT customer_firstname FROM mg_ikantam_buyback_order")# WHERE increment_id = 'buyback-%s'" %(tradeinentryfield.get() ))
for n in names:
for r in refreshtradein:
treeview.insert('',0,r,text = r, values=(n,'Mercedes', 'Purchased', '8-34-15'))
refreshtradein.close()
conn.close()
最佳答案
为什么使用两个不同的游标并因此使用两个嵌套的 for 循环?您知道嵌套 for 循环是如何计算的吗?
querycursor = conn.cursor()
querycursor.execute(SELECT increment_id, customer_firstname FROM mg_ikantam_buyback_order)
for row in querycursor:
print(row[0])
print(row[1])
哦,关于你的 where 子句。永远不要进行这样的参数替换。安全隐患很大
参见here如何正确地做到这一点
关于python - 使用python中的tkinter模块在treeview列中输出sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32268752/