在tkinter中实现以下功能:创建数据库,对输入的数据进行搜索,如果数据库中没有该数据则添加该数据,反之则删除该数据
时间: 2023-12-03 20:42:11 浏览: 83
首先,需要安装sqlite3模块来操作数据库。可以使用以下命令安装:
```python
pip install pysqlite3
```
然后,可以使用以下代码来创建一个tkinter窗口,并在其中添加用于搜索、添加和删除数据的文本框和按钮:
```python
import tkinter as tk
import sqlite3
# 创建一个数据库连接
conn = sqlite3.connect('test.db')
# 创建一个指向数据库的游标
cursor = conn.cursor()
# 创建一个名为data的表
cursor.execute('''CREATE TABLE IF NOT EXISTS data
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE)''')
# 关闭游标和连接
cursor.close()
conn.close()
# 创建一个tkinter窗口
root = tk.Tk()
# 添加用于输入数据的文本框
entry = tk.Entry(root)
entry.pack()
# 添加用于搜索数据的按钮
search_button = tk.Button(root, text='Search')
def search_data():
# 获取输入的数据
name = entry.get()
# 创建一个指向数据库的连接
conn = sqlite3.connect('test.db')
# 创建一个指向数据库的游标
cursor = conn.cursor()
# 查询数据
cursor.execute("SELECT * FROM data WHERE name=?", (name,))
result = cursor.fetchone()
# 如果数据不存在,则弹出消息框提示用户
if not result:
tk.messagebox.showinfo('Search Result', 'Data not found')
else:
tk.messagebox.showinfo('Search Result', f'Data found: {result[1]}')
# 关闭游标和连接
cursor.close()
conn.close()
search_button.config(command=search_data)
search_button.pack()
# 添加用于添加数据的按钮
add_button = tk.Button(root, text='Add')
def add_data():
# 获取输入的数据
name = entry.get()
# 创建一个指向数据库的连接
conn = sqlite3.connect('test.db')
# 创建一个指向数据库的游标
cursor = conn.cursor()
try:
# 向数据库中插入数据
cursor.execute("INSERT INTO data (name) VALUES (?)", (name,))
conn.commit()
tk.messagebox.showinfo('Add Result', f'Data added: {name}')
except sqlite3.IntegrityError:
tk.messagebox.showinfo('Add Result', 'Data already exists')
# 关闭游标和连接
cursor.close()
conn.close()
add_button.config(command=add_data)
add_button.pack()
# 添加用于删除数据的按钮
delete_button = tk.Button(root, text='Delete')
def delete_data():
# 获取输入的数据
name = entry.get()
# 创建一个指向数据库的连接
conn = sqlite3.connect('test.db')
# 创建一个指向数据库的游标
cursor = conn.cursor()
# 删除数据
cursor.execute("DELETE FROM data WHERE name=?", (name,))
conn.commit()
# 关闭游标和连接
cursor.close()
conn.close()
delete_button.config(command=delete_data)
delete_button.pack()
root.mainloop()
```
在这个例子中,我们创建了一个名为`data`的表,其中包含一个自增的整数类型的`id`列和一个唯一的文本类型的`name`列。然后,我们在窗口中添加了一个用于输入数据的文本框和三个按钮,分别用于搜索、添加和删除数据。当用户点击搜索按钮时,我们从数据库中查询数据并显示结果;当用户点击添加按钮时,我们向数据库中插入数据;当用户点击删除按钮时,我们从数据库中删除数据。
阅读全文