首页 > 解决方案 > 如何过滤具有多个搜索条件的数据库搜索结果?

问题描述

我是一名新手程序员,我正在创建一个 tkinter 应用程序来搜索使用 sqlite3 管理的数据库。

我的应用程序中有 4 个输入框,用于输入不同类型的搜索关键字,分别是“姓名”、“身份证号”、“负责人”和“日期”。

我希望该工具将数据库记录返回到满足在输入框中输入的关键字的树视图。如果输入框为空,我希望该工具忽略该输入框。同样,如果所有输入框都为空,则该工具应忽略所有输入框并返回数据库中的所有记录。

下面是我现在创建的搜索功能(当用户在输入关键字后单击搜索按钮时)。

def search():
name = name_entry.get()
idno = id_entry.get()
resp = resp_entry.get()
date = date_entry.get()

global count
conn = sqlite3.connect('test1.db')
c = conn.cursor()

for record in myTree.get_children():
    myTree.delete(record)

with conn:
    entries = [name, idno, resp, date]
    for entry in entries:
        if entry == "":
#            ???  <-- this is where I am stuck
        else:
            pass

    c.execute("SELECT * FROM MouldEntry WHERE name_entry = ? AND id_entry = ? AND resp_entry = ? AND date_entry = ?", (name, idno, resp, date,))
    records = c.fetchall()
    for record in records:
        myTree.insert(parent="", index="end", iid=count, text="", values=(record[0], record[1], record[2], record[3]))
        count += 1

count = 0
conn.commit()
conn.close()

标签: python-3.xsqlitetkinter

解决方案


推荐阅读