它不允许我从我的数据库访问我的提示,出现错误。
代码:
def do_question(self):
self.func1()
#myGlobal + 1
if myGlobal >5:
import MathsvadersReal
SQL = 'SELECT * FROM tblQuestion'
cursor = Databaseconnector.SELECT(SQL)
rows = cursor.fetchall()
random_row = random.choice(rows)
print random_row.QuestionID, random_row.Question, random_row.Hint, random_row.A1, random_row.A2, random_row.A3, random_row.A4, random_row.CorrectAnswer
# create welcome label
self.label1 = Tkinter.Label(self, bg ='yellow', text = (random_row.Question))
self.label1.grid(row = 0, column = 6, columnspan = 2, sticky = 'E')
self.label111 = Tkinter.Label(self, bg ='red', text = (random_row.QuestionID, "."))
self.label111.grid(row = 0, column = 1, columnspan = 4, sticky = 'W')
提示代码:
def homepage_link(self):
lbl = self.label111['text']
SQL = 'SELECT Hint FROM tblQuestion WHERE QuestionID = ' + lbl + ''
print SQL
cursor = Databaseconnector.SELECT(SQL)
rows = cursor.fetchall()
#row = rows
tkMessageBox.showinfo("Hint", (row.Hint))
ERROR:
ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'QuestionID = 9 .'. (-3100) (SQLExecDirectW)")
答案 0 :(得分:0)
您从self.label111['text']
检索的值不是有效整数,您应该删除文本末尾的"."
:
self.label111 = Tkinter.Label(self, bg ='red', text=random_row.QuestionID)
# ...
SQL = 'SELECT Hint FROM tblQuestion WHERE QuestionID = %s' % self.label111['text']