我有以下代码,它创建一个列表框并用MySQL查询中的数据填充它。
self.listbox = Listbox(self)
self.data = ['All Accounts']
sql = "SELECT AccNo FROM accounts"
curs.execute(sql)
numrows = curs.fetchall()
self.data.append(numrows)
for i in self.data:
self.listbox.insert(END, i)
self.listbox.grid(row=8, column= 0, columnspan=3, rowspan=8)
数据显示在列表框中,但全部在一行上。如何更改代码,以便使用列表框中不同行的列表中的每个项目填充列表框?
提前感谢您的帮助。
答案 0 :(得分:0)
似乎问题是你的列表中只有一个条目,sql语句的全部内容被分配给" numrows"。当您将numrows附加到self.data列表时,它会将其作为一个大的单个条目。你做了相同的事情:
self.data.append(curs.fetchall())
这只是将sql返回直接传递给你的列表。在将其添加到列表之前,您需要解析sql语句中的返回信息,而不是直接将其附加到列表中。