基本上我试图让我的数据库连接到我的GUI并显示一个随机的问题,但它根本不起作用,任何想法?
SQL = 'SELECT * FROM tblQuestion'
cursor = Databaseconnector.SELECT(SQL)
rows = cursor.fetchall()
rows = random.choice(rows)
print rows.Question, rows.Hint, rows.A1, rows.A2, rows.A3, rows.A4, rows.CorrectAnswer
#def create_widgets(self):
#create welcome label
label1 = Tkinter.Label(self, text = (rows(1).Question))
label1.grid(row = 0, column = 1, columnspan = 2, sticky = 'W')
错误:TypeError:'pydodbc.Row'对象不是
答案 0 :(得分:1)
rows
首先是pydodbc.Row
个对象的集合,但是您可以通过调用random.choice将其更改为单个pydodbc.Row
对象:
rows = cursor.fetchall() # rows is a list
rows = random.choice(rows) # now rows is a single object
然后您尝试使用()
调用该对象:
label1 = Tkinter.Label(self, text = (rows(1).Question))
失败并显示您提供的错误消息(部分):
ERROR: TypeError: ‘pydodbc.Row’ object is not callable
解决此问题的最佳方法是为单行使用新变量:
rows = cursor.fetchall()
random_row = random.choice(rows)
...
label1 = Tkinter.Label(self, text = (random_row.Question))