0

基本的に、データベースを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'オブジェクトはありません

4

1 に答える 1

1

rowsは最初はオブジェクトのコレクションですが、 random.choiceを呼び出しpydodbc.Rowて単一のオブジェクトに変更します。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))
于 2013-02-26T12:10:11.807 に答える