如图删除编号1之后添加是从最后面开始,怎么让他从前面开始,来个大佬教教我
from tkinter import *
import pymysql
from tkinter.messagebox import *
from tkinter import ttk
def get_connect():
conn = pymysql.connect(host='localhost', user="root", passwd='123456', database='db_phone')
return conn
def create():
root = Tk()
root.geometry('700x700')
root.title('通讯录管理系统')
Label(root, text="编号:").place(relx=0, rely=0.05, relwidth=0.1)
Label(root, text="姓名:").place(relx=0.5, rely=0.05, relwidth=0.1)
Label(root, text="电话:").place(relx=0.5, rely=0.1, relwidth=0.1)
sid1 = StringVar()
name1 = StringVar()
phone1 = StringVar()
Entry(root, textvariable=sid1).place(relx=0.1, rely=0.05, relwidth=0.37, height=25)
Entry(root, textvariable=name1).place(relx=0.6, rely=0.05, relwidth=0.37, height=25)
Entry(root, textvariable=phone1).place(relx=0.6, rely=0.1, relwidth=0.37, height=25)
def add():
connection = get_connect()
cur = connection.cursor(cursor=pymysql.cursors.DictCursor)
obj = treeview.get_children() # 获取所有对象
for o in obj:
treeview.delete(o)
name = name1.get()
phone = phone1.get()
try:
cur.execute('insert into person(name,phone) values ("%s","%s")' % (name, phone))
connection.commit()
except Exception as e:
connection.rollback()
raise e
finally:
connection.close()
search_all()
showinfo('提示', '添加成功!')
def update():
obj = treeview.get_children() # 获取所有对象
for o in obj:
treeview.delete(o)
connection = get_connect()
cur = connection.cursor()
id =sid1.get()
newname = name1.get()
newphone = phone1.get()
try:
cur.execute('update person set name="' + newname + '",phone="' + newphone + '" where id="' + id + '"')
connection.commit()
except Exception as e:
connection.rollback()
raise e
finally:
connection.close()
search_all()
showinfo('提示', '修改成功!')
def delete():
id =sid1.get()
conn = pymysql.connect(host='localhost', user="root", passwd="123456", database='db_phone')
cur = conn.cursor()
cur.execute('delete from person where id="' + id + '"')
conn.commit()
showinfo('提示', '删除成功!')
search_all()
def search():
obj = treeview.get_children() # 获取所有对象
for o in obj:
treeview.delete(o)
into = int(sid1.get())
conn = pymysql.connect(host='localhost', user="root", passwd="123456", database='db_phone')
cur = conn.cursor()
sql = 'select * from person ;'
cur.execute(sql)
all = cur.fetchall()
for i in range(len(all)):
for j in all:
if into == j[0]:
treeview.insert('', i, value=(j[0], j[1], j[2]))
break
break
def search_all():
obj = treeview.get_children() # 获取所有对象
for o in obj:
treeview.delete(o)
conn = pymysql.connect(host='localhost', user="root", passwd="123456", database='db_phone')
cur = conn.cursor()
sql = 'select * from person ;'
cur.execute(sql)
f = cur.fetchall()
for i in range(len(f)):
# for j in range(len(i)):
treeview.insert('', i, value=(f[i][0], f[i][1], f[i][2]))
conn.close()
Button(root, text="添加信息", command=add).place(relx=0.03, rely=0.2, width=100)
Button(root, text="修改信息", command=update).place(relx=0.23, rely=0.2, width=100)
Button(root, text="删除信息", command=delete).place(relx=0.43, rely=0.2, width=100)
Button(root, text="查询个人信息", command=search).place(relx=0.63, rely=0.2, width=100)
Button(root, text="查询所有信息", command=search_all).place(relx=0.83, rely=0.2, width=100)
columns = ('编号', '姓名', '电话')
treeview = ttk.Treeview(root, show='headings', columns=columns)
treeview.column('编号', width=150, anchor='center')
treeview.column('姓名', width=150, anchor='center')
treeview.column('电话', width=150, anchor='center')
treeview.heading('编号', text='编号')
treeview.heading('姓名', text='姓名')
treeview.heading('电话', text='电话')
treeview.place(rely=0.3, relwidth=0.99)
if name == 'main':
get_connect()
create()
mainloop()
编号是主键,不归你控制
你要是不希望显示主键,那查询的时候就别显示,排序按姓名排序,不就得了