【发布时间】:2019-07-10 22:33:23
【问题描述】:
我有一个 SQLite 数据库,我使用用户输入的 TKinter 小部件将多个信息点放入(名称、DOB、位置等)。
我为用户创建了一个表单,它工作正常。然后我为管理员创建了一个“反向表单”。它从数据库中提取数据并将其重新插入只读格式,以便管理员可以准确地看到它是如何提交的。
然后我创建了一个搜索功能,用于显示来自数据库的基本结果。然后,我使用一个按钮让管理员单击以通过反向表单显示更详细的信息。
我的问题是,当我拉反向表格时,它只会拉出搜索结果中的最后一个条目来填写表格。我需要为每个数据库条目提取相应的信息。
def retrieve_result(self):
con = sql_connect(self)
self.data_retrieval = con.cursor()
self.data_retrieval.execute('SELECT * FROM Raw_data WHERE first_name=(?)', (self.first_name_field.get(),))
return self.data_retrieval.fetchall()
sql_close(con)
def display_results(self):
results = self.retrieve_result()
for index, data_list in enumerate(results,10):
Button(self.frame, text=(data_list[0] +" " + data_list[1]),
command=self.retrieve_form).grid(row=index+1, column=0)
Label(self.frame, text=data_list[2]).grid(row=index+1, column=1)
self.db_first_name = StringVar(value=data_list[0])
self.db_last_name = StringVar(value=data_list[1])
self.db_dob = StringVar(value=data_list[2])
def retrieve_form(self):
self.first_name_field = Entry(self.frame, state=DISABLED, disabledbackground="gray95", disabledforeground="black",textvariable=self.db_first_name, bg="white")
self.first_name_field.grid(row=3, column=0, sticky=N)
self.last_name_field = Entry(self.frame, state=DISABLED, disabledbackground="gray95", disabledforeground="black", textvariable=self.db_last_name, bg="white")
self.last_name_field.grid(row=3, column=1, sticky=N)
self.age_field = Entry(self.frame, state=DISABLED, disabledbackground="gray95", disabledforeground="black", textvariable=self.db_dob, bg="white")
self.age_field.grid(row=5, column=0, sticky=N, padx=10)
代码要复杂得多,但我想我捕捉到了需要帮助的内容。就像我说的,我可以将所有数据库信息拉入内核,但表单只检索数据库中的最后一个条目,而不是每个条目创建自己的唯一信息。
【问题讨论】: