无法添加,无法更新
Button(root1, text="增加订单", activebackground='gray',font=('楷体',13), command=lambda: appendInfo(tree=Tree1, list=list1)).place(relx=0.15, rely=0.24, width=150)
Button(root1, text="更改订单信息", activebackground='gray',font=('楷体',13), command=lambda: updateInfo(tree=Tree1, list=list1)).place(relx=0.15, rely=0.38, width=150)
def appendInfo(tree,list):
delButton(tree)
list2 = []
for i in range(len(list)):
if list[i].get() == '':
showerror(title='提示', message='输入不能为空!')
return
else:
list2.append(list[i].get())
x = tree.get_children()
for item in x:
tree.delete(item)
db = pymysql.connect(host="localhost", user="root", password="123456", db="wqf", port=3306)
cur = db.cursor()
try:
cur.execute("insert into o values('%s','%s','%s','%s','%s','%s','%s')" % (list2[0], list2[1], list2[2], list2[3], list2[4], list2[5], list2[6]))
db.commit()
cur.execute("select * from o")
results = cur.fetchall()
for item in results:
tree.insert('', "end", values=item)
showinfo(title='提示', message='添加/更新成功!')
except:
showinfo(title='提示', message='该编号已存在!')
return
cur.close()
db.close()
def updateInfo(tree, list):
if not tree.selection():
showerror(title='提示', message='请选择一条信息!')
return
else:
res=askyesno("提示!","是否确认更新数据?")
if res==True:
for item in tree.selection():
selectedItem = tree.selection()[0]
no1 = tree.item(selectedItem, 'values')[0]
tree.delete(item)
db = pymysql.connect(host="localhost", user="root", password="123456", db="wqf", port=3306)
cur = db.cursor()
cur.execute("update set o where Oid= '%s'" % no1)
db.commit()
cur.close()
db.close()
appendInfo(tree, list)
return
Traceback (most recent call last):
File "D:\python\lib\tkinter_init.py", line 1705, in call
return self.func(*args)
File "c:/Users/WIN/Desktop/最后 - 副本.py", line 189, in
Button(root1, text="增加订单", activebackground='gray',font=('楷体',13), command=lambda: appendInfo(tree=Tree1, list=list1)).place(relx=0.15, rely=0.24, width=150)
File "c:/Users/WIN/Desktop/最后 - 副本.py", line 233, in appendInfo
if list[i].get() == '':
AttributeError: 'NoneType' object has no attribute 'get'
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\python\lib\tkinter_init.py", line 1705, in call
return self.func(*args)
File "c:/Users/WIN/Desktop/最后 - 副本.py", line 197, in treeviewClick
entry_Oid.delete(0, 'end')
AttributeError: 'NoneType' object has no attribute 'delete'
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\python\lib\tkinter_init_.py", line 1705, in call
return self.func(*args)
File "c:/Users/WIN/Desktop/最后 - 副本.py", line 191, in
Button(root1, text="更改订单信息", activebackground='gray',font=('楷体',13), command=lambda: updateInfo(tree=Tree1, list=list1)).place(relx=0.15, rely=0.38, width=150)
File "c:/Users/WIN/Desktop/最后 - 副本.py", line 294, in updateInfo
cur.execute("update set o where Oid= '%s'" % no1)
File "D:\python\lib\site-packages\pymysql\cursors.py", line 148, in execute
result = self._query(query)
File "D:\python\lib\site-packages\pymysql\cursors.py", line 310, in _query
conn.query(q)
File "D:\python\lib\site-packages\pymysql\connections.py", line 548, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "D:\python\lib\site-packages\pymysql\connections.py", line 775, in _read_query_result
result.read()
File "D:\python\lib\site-packages\pymysql\connections.py", line 1156, in read
first_packet = self.connection._read_packet()
File "D:\python\lib\site-packages\pymysql\connections.py", line 725, in _read_packet
packet.raise_for_error()
File "D:\python\lib\site-packages\pymysql\protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\python\lib\site-packages\pymysql\err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set o where Oid= 'Q123'' at line 1")
两点:1、你if list[i].get()这儿是取list中的值,没有get()这个属性,这个语法错了,直接就是list[i]
2、update 语句这儿 语法错误,应该是 update 表名 set xxx=xxx where xxx=xxx