如果条目中的内容符合小要求

时间:2018-02-22 13:14:50

标签: python string tkinter sqlite

我想从python中查询来自sqlite3 db的数据并将其填入Listbox但是如果我正在进行搜索,我必须在记录之前提供Harvard University之类的全名插入Listbox

我想通过仅提供Harvard University来查询Harvard之类的记录,然后它将为我输出所有records内容Havard的内容,因为如果我不提供全名它不会用任何记录填充listbox

欢迎您提出建议。

import tkinter as tk
import sqlite3

conn = sqlite3.connect("STATS.db")
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS institution(id INTEGER PRIMARY KEY, 
name TEXT)")
conn.commit()
conn.close()


def query_record():
    data1 = e1_search.get()

    conn = sqlite3.connect("STATS.db")
    cur = conn.cursor()
    cur.execute("SELECT * FROM institution WHERE name=?", (data1,))
    row = cur.fetchall()

    for n in row:
        List.insert(tk.END, n)
        print(n)
    conn.close()


root = tk.Tk()
root.geometry("300x300")

List = tk.Listbox(root, width=100)
List.pack()

e1_search = tk.StringVar()
e1 = tk.Entry(root, textvariable=e1_search)
e1.pack()

b = tk.Button(text="Search", command=query_record)
b.pack(side=tk.BOTTOM)

root.mainloop()

1 个答案:

答案 0 :(得分:1)

我认为您可能需要修改查询。 自"SELECT * FROM institution WHERE name=?", (data1,)以来 将完全匹配您可以尝试的输入字符串,

"SELECT * FROM institution WHERE name like ?", (data1+'%',)

希望这有效!