【发布时间】:2021-06-06 18:46:18
【问题描述】:
我目前正在从事一个学校项目,我必须使用 Python、Tkinter 和 SQLite3 创建一个带有 GUI 的数据库应用程序。我正在尝试创建一个函数,用户将在其中将 OrderID 键入表单,并且将从数据库文件中获取具有相应 OrderID 的订单详细信息并插入到文本文件中。我在尝试运行代码时收到以下错误:
File "c:\Users\Ryan\OneDrive - C2k\A2 2020-2021\Computer Science\A2 Unit 5\Code\OrderForm.py", line 149, in PrintOrder
write.write("-----CUSTOMER INVOICE-----", "\n".join(str(x) for x in results))
TypeError: write() takes exactly one argument (2 given)
我的代码的 sn-p 和表单的屏幕截图附在下面:
def PrintOrder(self):
orderid = self.OrderIDEntry.get()
productid = self.ProductIDEntry.get()
quantity = self.QuantityEntry.get()
with sqlite3.connect("LeeOpt.db") as db:
cursor = db.cursor()
search_order = ('''SELECT * FROM Orders WHERE OrderID = ?''')
cursor.execute(search_order, [(orderid)])
results = cursor.fetchall()
if results:
for i in results:
write = open("orderinvoice.txt","w")
write.write("-----CUSTOMER INVOICE-----", "\n".join(str(x) for x in results))
tkinter.messagebox.showinfo("Notification","Invoice generated successfully.")
self.ClearEntries()
else:
tkinter.messagebox.showerror("Error", "No order was found with this OrderID, please try again.")
self.ClearEntries()
【问题讨论】:
-
错误信息告诉你什么?你到底在做什么?您是否尝试过在错误消息中执行它希望您执行的操作?
-
@PranavHosangadi 我需要从数据库文件的字段中写入数据。我不知道如何绕过它。
标签: python database sqlite tkinter