【发布时间】:2019-04-07 19:19:42
【问题描述】:
所以我在本节中的代码应该是从 sql 数据库中获取一个值并将 tkinter 值添加到它上面,然后将该值放回 sql 数据库中
with sqlite3.connect('aircraft.db') as db:
c = db.cursor()
self.flightcount4 = self.flightcount5.get()
self.flightcount3 = int(self.flightcount4)
c.execute("SELECT flightcount FROM aircraft WHERE Arrive = ?",(self.travelselect.get(),))
self.total3 = c.fetchone()
total2 = int(self.total3)
self.total = total2 + self.flightcount3
c.execute('UPDATE aircraft SET flightcount = :flightcount WHERE Arrive = :Arrive',{'flightcount':self.flightcount3, 'aircraftpilot':self.pilotname5 })
db.commit()
ms.showinfo('Success!', 'its saved!')
这是我的代码。
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\adam\AppData\Local\Programs\Python\Python36-
32\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "C:\A LEVELS\Computing\atom\actual results\working\Customer.py",
line 40, in addtocount
total2 = int(self.total3)
TypeError: int() argument must be a string, a bytes-like object or a
number, not 'tuple'
[Finished in 30.761s]
这是错误。
从那时起,我在你的帮助下想出了这个:
def addtocount(self):
with sqlite3.connect('aircraft.db') as db:
c = db.cursor()
self.flightcount4 = self.flightcount5.get()
self.flightcount3 = int(self.flightcount4)
c.execute("SELECT flightcount FROM aircraft WHERE Arrive = ?",(self.travelselect.get(),))
self.total3 = c.fetchone()[0]
print(self.total3)
if self.total3 == "None":
self.total2 == int("0")
print(self.total2)
else:
self.total2 = self.total3
self.total = self.total2 + self.flightcount3
c.execute('UPDATE aircraft SET flightcount = :flightcount WHERE Arrive = :Arrive',{'flightcount':self.flightcount3, 'aircraftpilot':self.pilotname5 })
db.commit()
ms.showinfo('Success!', 'its saved!')
但现在的错误是:
File "C:\A LEVELS\Computing\atom\actual results\working\Customer.py", line 46, in addtocount
self.total = self.total2 + self.flightcount3
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
[Finished in 15.573s]
提前致谢
【问题讨论】: