如何通过TextBox输入框实现数据库模糊查询?
实现模糊查询的修改方案
嘿,这问题很好解决!你当前的SQL查询是精确匹配输入内容,所以只有输入全名时才会返回结果。要实现输入单个字符就显示所有包含该字符的记录,只需要给你的LIKE条件加上通配符就行啦。
关键修改点
SQL里的%是通配符,代表任意长度的字符(包括0个)。你需要把原来的查询参数,从单纯的输入内容改成%输入内容%,这样就能匹配所有包含该内容的记录了。
修改后的完整代码
from tkinter import * import sqlite3 def printRecords(): connection = sqlite3.connect('baza.db') cur = connection.cursor() # 给输入内容前后加上%通配符,实现模糊匹配 search_term = '%' + z.get() + '%' cur.execute("select * from Zaposleni where Ime LIKE ?", (search_term,)) # 查询操作不需要commit,这里可以去掉 variablename = cur.fetchall() print(variablename) # 记得关闭连接,避免资源占用 connection.close() root = Tk() root.title("Search Employees") # 补全你没写完的输入框和按钮代码,让程序能正常运行 z = Entry(root) z.pack(pady=10) search_btn = Button(root, text="Search", command=printRecords) search_btn.pack(pady=5) root.mainloop()
额外小优化
- 去掉了不必要的
connection.commit(),因为查询操作不需要提交事务 - 添加了
connection.close(),避免数据库连接一直占用资源 - 补全了输入框和按钮的代码,让整个程序可以直接运行测试
内容的提问来源于stack exchange,提问作者Maximus
相关产品推荐
相关产品推荐

