import tkinter as tk
import sqlite3
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.master.title("SQLite Demo")
self.master.geometry("500x300")
self.grid()
self.create_widgets()
def create_widgets(self):
# 定义控件
self.label1 = tk.Label(self, text="ID:")
self.label2 = tk.Label(self, text="Name:")
self.label3 = tk.Label(self, text="Age:")
self.entry1 = tk.Entry(self)
self.entry2 = tk.Entry(self)
self.entry3 = tk.Entry(self)
self.button1 = tk.Button(self, text="Add", command=self.add_record)
self.button2 = tk.Button(self, text="Delete", command=self.delete_record)
self.button3 = tk.Button(self, text="Update", command=self.update_record)
self.button4 = tk.Button(self, text="Query", command=self.query_record)
self.text1 = tk.Text(self, height=10, width=40)
# 布局控件
self.label1.grid(row=0, column=0, sticky=tk.W)
self.entry1.grid(row=0, column=1, sticky=tk.W)
self.label2.grid(row=1, column=0, sticky=tk.W)
self.entry2.grid(row=1, column=1, sticky=tk.W)
self.label3.grid(row=2, column=0, sticky=tk.W)
self.entry3.grid(row=2, column=1, sticky=tk.W)
self.button1.grid(row=3, column=0)
self.button2.grid(row=3, column=1)
self.button3.grid(row=3, column=2)
self.button4.grid(row=3, column=3)
self.text1.grid(row=4, column=0, columnspan=4)
def add_record(self):
# 获取输入数据
id = self.entry1.get()
name = self.entry2.get()
age = self.entry3.get()
# 连接数据库
conn = sqlite3.connect("test.db")
c = conn.cursor()
# 执行插入语句
c.execute("INSERT INTO test VALUES (?, ?, ?)", (id, name, age))
# 提交事务
conn.commit()
# 关闭连接
conn.close()
# 清空输入框
self.entry1.delete(0, tk.END)
self.entry2.delete(0, tk.END)
self.entry3.delete(0, tk.END)
def delete_record(self):
# 获取输入数据
id = self.entry1.get()
# 连接数据库
conn = sqlite3.connect("test.db")
c = conn.cursor()
# 执行删除语句
c.execute("DELETE FROM test WHERE id = ?", (id,))
# 提交事务
conn.commit()
# 关闭连接
conn.close()
# 清空输入框
self.entry1.delete(0, tk.END)
def update_record(self):
# 获取输入数据
id = self.entry1.get()
name = self.entry2.get()
age = self.entry3.get()
# 连接数据库
conn = sqlite3.connect("test.db")
c = conn.cursor()
# 执行更新语句
c.execute("UPDATE test SET name = ?, age = ? WHERE id = ?", (name, age, id))
# 提交事务
conn.commit()
# 关闭连接
conn.close()
# 清空输入框
self.entry1.delete(0, tk.END)
self.entry2.delete(0, tk.END)
self.entry3.delete(0, tk.END)
def query_record(self):
# 连接数据库
conn = sqlite3.connect("test.db")
c = conn.cursor()
# 执行查询语句
result = c.execute("SELECT * FROM test")
# 输出查询结果
self.text1.delete('1.0', tk.END)
for row in result:
self.text1.insert(tk.END, "ID: " + str(row[0]) + "\n")
self.text1.insert(tk.END, "Name: " + str(row[1]) + "\n")
self.text1.insert(tk.END, "Age: " + str(row[2]) + "\n")
self.text1.insert(tk.END, "-----------------\n")
# 关闭连接
conn.close()
# 初始化数据库
def init_db():
# 连接数据库
conn = sqlite3.connect("test.db")
c = conn.cursor()
# 判断表是否存在
c.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='test'")
table_exists = c.fetchone() is not None
if not table_exists:
# 如果表不存在,则创建表
c.execute("CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)")
# 提交事务
conn.commit()
# 关闭连接
conn.close()
init_db()
root = tk.Tk()
app = Application(root)
root.mainloop()
基于Tkinter的Python窗体程序,用于对SQLite数据库进行增删改查操作的示例
最新推荐文章于 2024-04-06 14:08:37 发布
该代码示例展示了如何利用Python的tkinter库创建一个图形用户界面(GUI),并结合sqlite3库进行数据库的增删改查操作。用户可以输入ID、Name和Age,然后通过按钮执行添加、删除、更新和查询记录的功能。程序首先初始化一个名为test的数据库表,包含id、name和age三个字段。
摘要由CSDN通过智能技术生成