как извлечь данные из SQL с помощью переменной entry.get () - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь извлечь данные из таблицы SQL с помощью функции entry.get().

def display_1():
    global entry_1    
    x = entry_1.get()
    if x =="ball":
        objects = cursor.execute("select * from table where stuff=='ball' ") 
        for row in objects.fetchall():
            print("objects =", row[1],row[2],row[3])

Я попробовал код: objects = cursor.execute("select * from table where stuff==x "), но он не работает.Я бы использовал переменную x для извлечения данных из базы данных.

полный код приведен ниже:

import sqlite3
connection = sqlite3.connect('table.db')
cursor = connection.cursor()
connection.commit()
import tkinter as tk
def display_1():
    x = entry_1.get()
    if x =="ball":
        objects = cursor.execute("select * from table where stuff=='ball' ")
        for row in objects.fetchall():
            print("objects =", row[1],row[2],row[3])
root = tk.Tk()
entry_1 = tk.Entry(root)
btn_1 = tk.Button(root, text = "Display Text", command = display_1)
entry_1.grid(row = 0, column = 0)
btn_1.grid(row = 1, column = 0)
root.mainloop()

1 Ответ

0 голосов
/ 17 октября 2018

Обновление: на основе ваших комментариев я изменил функцию, чтобы работать непосредственно с полем ввода.Я использовал оператор try/except для обработки неудачного запроса.

Попробуйте это:

import sqlite3
import tkinter as tk


connection = sqlite3.connect('table.db')
cursor = connection.cursor()
connection.commit()

root = tk.Tk()

entry_1 = tk.Entry(root)

def display_1():
    try:
        # changed this to follow the safer example in the duplicate post.
        objects = cursor.execute("select * from table where stuff=?",(entry_1.get(),))
        for row in objects.fetchall():
            print("objects = {}".format((row[1], row[2], row[3])))
    except:
        print("query failed.")

btn_1 = tk.Button(root, text="Display Text", command=display_1)
entry_1.grid(row=0, column=0)
btn_1.grid(row=1, column=0)

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...